以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 统计数据不准 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=174966) |
||||
-- 作者:nuoyan89 -- 发布时间:2022/2/13 21:01:00 -- 统计数据不准 老师,以下代码写在表事件里的(表事件代码1),根据条件在工序跟踪表中引用如图2,条件都满足,但是加工数量不统计如图1,有些统计了确老是少几个?表事件代码2里的代码也不起作用,请帮忙看看 表事件代码1: If e.DataCol.Name = "成品编码" OrElse e.DataCol.Name = "生产批次" OrElse e.DataCol.Name = "加工工序" OrElse e.DataCol.Name = "加工次数" OrElse 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("加工次数") & "\' and [使用设备] = \'" & e.DataRow("使用设备")& "\' and [配刀单号] = \'" & e.DataRow("配刀单号")& "\'and [扫描日期] < =\'" & e.DataRow("还刀日期")& "\'and [扫描日期] >= \'" & e.DataRow("实际领刀日期") & "\'" e.DataRow("加工数量") = DataTables("工序跟踪表").SQLCompute("Sum(合格品)", Filter) End If 事件表代码2 Select Case e.DataCol.Name Case "生产批次","使用设备","加工次数","加工工序","配刀单号","还刀日期" Dim dr As DataRow = e.DataRow Dim pr As DataRow If dr.IsNull("生产批次") OrElse dr.IsNull("使用设备") OrElse dr.IsNull("加工次数") OrElse dr.IsNull("加工工序") OrElse dr.IsNull("配刀单号") OrElse dr.IsNull("还刀日期") Then Dim filter As String filter = "生产批次 = \'" & dr("生产批次") & "\' And 使用设备 = \'" & dr("使用设备") & "\' and 加工工序 = \'" & dr("加工工序") & "\' and 加工次数 = \'" & dr("加工次数") & "\' and 配刀单号 = \'" & dr("配刀单号") & "\' and 扫描日期 = \'" & dr("还刀日期")& "\'" pr = DataTables("工序跟踪表").SQLFind(filter) If pr IsNot Nothing Then dr("还刀人员") = pr("姓名") End If End If End Select |
||||
-- 作者:有点蓝 -- 发布时间:2022/2/13 21:22:00 -- 这些条件列不能有空值,sql添加条件后是不会计算条件是空值的列的。 |
||||
-- 作者:nuoyan89 -- 发布时间:2022/2/13 21:26:00 -- 我检查了没有空值,我把项目重启后这个可以算了,但在点击另一条记录时又出现这种情况了,项目又重启又可以了,继续点击又出现记录不准 |
||||
-- 作者:有点蓝 -- 发布时间:2022/2/13 21:30:00 -- 如果是指(表事件代码1),如果没有空值,那么就是哟数据没有保存,SQLCompute只能统计已保存的数据 如果是指(表事件代码2)肯定100%有空值。
|
||||
-- 作者:程兴刚 -- 发布时间:2022/2/14 0:17:00 -- DataTables("工序跟踪表").save() If e.DataCol.Name = "成品编码" OrElse e.DataCol.Name = "生产批次" OrElse e.DataCol.Name = "加工工序" OrElse e.DataCol.Name = "加工次数" OrElse 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("加工次数") & "\' and [使用设备] = \'" & e.DataRow("使用设备")& "\' and [配刀单号] = \'" & e.DataRow("配刀单号")& "\'and [扫描日期] < =\'" & e.DataRow("还刀日期")& "\'and [扫描日期] >= \'" & e.DataRow("实际领刀日期") & "\'" e.DataRow("加工数量") = DataTables("工序跟踪表").SQLCompute("Sum(合格品)", Filter) e.datarow.save() End If 事件表代码2 Select Case e.DataCol.Name Case "生产批次","使用设备","加工次数","加工工序","配刀单号","还刀日期" Dim dr As DataRow = e.DataRow Dim pr As DataRow If dr.IsNull("生产批次") OrElse dr.IsNull("使用设备") OrElse dr.IsNull("加工次数") OrElse dr.IsNull("加工工序") OrElse dr.IsNull("配刀单号") OrElse dr.IsNull("还刀日期") Then Dim filter As String filter = "生产批次 = \'" & dr("生产批次") & "\' And 使用设备 = \'" & dr("使用设备") & "\' and 加工工序 = \'" & dr("加工工序") & "\' and 加工次数 = \'" & dr("加工次数") & "\' and 配刀单号 = \'" & dr("配刀单号") & "\' and 扫描日期 = \'" & dr("还刀日期")& "\'" pr = DataTables("工序跟踪表").SQLFind(filter) If pr IsNot Nothing Then dr("还刀人员") = pr("姓名") dr.save() End If End If End Select 您的问题就是该保存的没保存就在后台查找数据,此时您看到的符合的条件值在后台并不一定符合!
|
||||
-- 作者:nuoyan89 -- 发布时间:2022/2/14 9:54:00 -- 请帮忙再看看,打开窗口表后,选中配刀单号,点击刷新,谢谢!加工数量我在原有的窗口表中还是计算不出来,数据都是用的和《管理项目2》中的数据一样的
[此贴子已经被作者于2022/2/14 9:55:37编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2022/2/14 10:24:00 -- 项目数据源设置有问题,无法测试。 其次点击刷新后怎么看结果?什么数据有问题? 另外无法理解下面判断的用途是什么?既然数据没有空值,下面代码又是判断有空值才会进入if里!! If dr.IsNull("生产批次") OrElse dr.IsNull("使用设备") OrElse dr.IsNull("加工次数") OrElse dr.IsNull("加工工序") OrElse dr.IsNull("配刀单号") OrElse dr.IsNull("还刀日期") Then
|
||||
-- 作者:nuoyan89 -- 发布时间:2022/2/14 16:56:00 -- 我把代码全部改了,还是不行。现在的状况是原有项目重启,按照改了的代码依然不行,又把原有的窗口表放在新项目测试代码没有问题,原有的项目还是不行,数据源没有变,请帮忙看看 |
||||
-- 作者:有点蓝 -- 发布时间:2022/2/14 17:05:00 -- 代码看不出有问题。连接不到数据源,无法测试 如果新项目测试没有问题,旧项目有问题,自己比较一下,肯定有不同的地方。检查是不是有其它什么代码影响了
|
||||
-- 作者:nuoyan89 -- 发布时间:2022/2/14 17:10:00 -- 老师,现在新的也不行了,不统计了,新的项目里没有其他的代码 |