以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求和结果不显示  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=115666)

--  作者:有点甜
--  发布时间:2018/3/12 10:53:00
--  
代码没问题。你手动输入合格品等列的数据,能否触发datacolchanged事件计算?
[此贴子已经被作者于2018/3/12 10:53:40编辑过]

--  作者:有点甜
--  发布时间:2018/3/12 11:08:00
--  
以下是引用nuoyan88在2018/3/12 11:02:00的发言:
是的,代码是没有问题的,因为我是在明细里汇总的,如果明细里没有为0时,他结果不计算 ,不知道 是不是因为0值,所以不计算

 

你用的如果是表达式列,看看 http://www.foxtable.com/webhelp/scr/0602.htm

 


--  作者:有点甜
--  发布时间:2018/3/12 11:58:00
--  
If e.DataCol.Name  = "成品编码" OrElse e.DataCol.Name = "生产批次" OrElse e.DataCol.Name  = "加工工序" OrElse e.DataCol.Name  = "使用设备" Then
    Dim Filter1 As String = "[成品编码] = \'" & e.DataRow("成品编码") & "\' and [生产批次] = \'" & e.DataRow("生产批次") & "\' and [加工工序] = \'" & e.DataRow("加工工序") & "\' and [使用设备] = \'" & e.DataRow("使用设备")  & "\'"
    Dim sum1 = DataTables("过程异常明细").SQLCompute("Sum(长期不良)", Filter1)
    Dim Filter2 As String = "[成品编码] = \'" & e.DataRow("成品编码") & "\' and [生产批次] = \'" & e.DataRow("生产批次") & "\' and [加工工序] = \'" & e.DataRow("加工工序") & "\' and [使用设备] = \'" & e.DataRow("使用设备")  & "\'"
    Dim sum2 = DataTables("过程异常明细").SQLCompute("Sum(短期不良)", Filter2)
    e.DataRow("不合格品") = sum1 + sum2
End If

--  作者:有点甜
--  发布时间:2018/3/12 12:02:00
--  
以下是引用nuoyan88在2018/3/12 12:00:00的发言:
回复4楼,老师,不是表达式列耶
图片点击可在新窗口打开查看此主题相关图片如下:3.jpg

 

代码没问题,你的datacolchanged事件触发了没有?想办法触发。

 

不然,上传实例说明你的问题


--  作者:有点甜
--  发布时间:2018/3/12 12:12:00
--  

1、重置列能否计算?

 

2、想办法触发datacolchanged事件。


--  作者:有点甜
--  发布时间:2018/3/12 14:49:00
--  

1、

 

Dim dr As DataRow = e.DataRow
Dim tian As Integer = DataTables("工序跟踪表").SQLGetValues("开始日期","生产批次=\'" & dr("生产批次") & "\' and 加工工序=\'" & dr("加工工序") & "\' and 成品编码=\'" & dr("成品编码") & "\'").Count
dr ("实际完成日期") =dr ("开始日期") .adddays(tian + dr ("待加工小时数")/24)

 

改成

 

If e.DataCol.Name  = "成品编码" OrElse e.DataCol.Name = "生产批次" OrElse e.DataCol.Name  = "加工工序"
    Dim dr As DataRow = e.DataRow
    Dim tian As Integer = DataTables("工序跟踪表").SQLGetValues("开始日期","生产批次=\'" & dr("生产批次") & "\' and 加工工序=\'" & dr("加工工序") & "\' and 成品编码=\'" & dr("成品编码") & "\'").Count
    dr ("实际完成日期") =dr ("开始日期") .adddays(tian + dr ("待加工小时数")/24)
End If

 

2、重置列 【合计品】

 

图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2018/3/12 21:52:00
--  
If e.DataCol.Name  = "成品编码" OrElse e.DataCol.Name = "生产批次" OrElse e.DataCol.Name  = "加工工序" OrElse e.DataCol.Name  = "使用设备" Then 
     Dim Filter As String = "[成品编码] = \'" & e.DataRow("成品编码") & "\' and [生产批次] = \'" & e.DataRow("生产批次") & "\' and [加工工序] = \'" & e.DataRow("加工工序") & "\' and [使用设备] = \'" & e.DataRow("使用设备")  & "\'"
    e.DataRow("不合格品") = DataTables("过程异常明细").SQLCompute("Sum(长期不良)", Filter) + DataTables("过程异常明细").SQLCompute("Sum(短期不良)", Filter)
End If


--  作者:有点蓝
--  发布时间:2018/3/12 22:16:00
--  
Filter变量重复定义