以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  加载树影响跨表统计问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=123709)

--  作者:3076469014
--  发布时间:2018/8/21 16:54:00
--  加载树影响跨表统计问题
老师,当我使用加载树时,统计数据无法正确计算,请问需要怎么解决,如图示订单欠料列
--  作者:3076469014
--  发布时间:2018/8/21 16:59:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:图2.jpg
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:物料信息.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2018/8/21 16:59:00
--  
请正确上传图片:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=78

如果统计是使用表达式的,要改为使用代码计算了。表达式是基于已经加载的数据计算的

--  作者:3076469014
--  发布时间:2018/8/21 17:02:00
--  

 If e.DataCol.Name = "物料代码" Then
    Dim Filter As String = "[物料代码] = \'" & e.NewValue & "\'"
    e.DataRow("出库数量") = DataTables("物料需求").Compute("Sum(累计出库)", Filter)
    e.DataRow("订单欠料") = DataTables("物料需求").Compute("Sum(订单欠料)", Filter)
End If


Select Case e.DataCol.Name
    Case "订单欠料"
        Dim pr As DataRow
        pr = DataTables("物料信息").Find("物料代码 = \'" & e.DataRow("物料代码") & "\'")
        If pr IsNot Nothing Then
            DataTables("物料信息").DataCols("物料代码").RaiseDataColChanged(pr)
        End If
End Select


代码是这样编写的,正常情况下运算正确,使用加载树就无法正确同步数据


--  作者:3076469014
--  发布时间:2018/8/21 17:04:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:捕获.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2018/8/21 17:15:00
--  
 If e.DataCol.Name = "物料代码" Then 
    Dim Filter As String = "[物料代码] = \'" & e.NewValue & "\'"
    e.DataRow("出库数量") = DataTables("物料需求").SqlCompute("Sum(累计出库)", Filter)
    e.DataRow("订单欠料") = DataTables("物料需求").SqlCompute("Sum(订单欠料)", Filter)
End If


--  作者:3076469014
--  发布时间:2018/8/21 17:38:00
--  

老师,按照语法修改,无法执行,成空白列

 


--  作者:有点蓝
--  发布时间:2018/8/21 17:50:00
--  
不可能的,上传实例说明
--  作者:3076469014
--  发布时间:2018/8/21 19:05:00
--  


图片点击可在新窗口打开查看此主题相关图片如下:物料信息.jpg
图片点击可在新窗口打开查看

代码如下:

If e.DataCol.Name = "物料代码" Then
    Dim Filter As String = "[物料代码] = \'" & e.NewValue & "\'"
    e.DataRow("订单欠料") = DataTables("物料需求").SqlCompute("Sum(订单欠料)", Filter)
End If


图片点击可在新窗口打开查看此主题相关图片如下:物料需求.jpg
图片点击可在新窗口打开查看

代码如下:

Select Case e.DataCol.Name
    Case "订单欠料"
        Dim pr As DataRow
        pr = DataTables("物料信息").Find("物料代码 = \'" & e.DataRow("物料代码") & "\'")
        If pr IsNot Nothing Then
            DataTables("物料信息").DataCols("物料代码").RaiseDataColChanged(pr)
        End If
End Select

 

无法执行统计指令。不加SQL是正常运算,问题就是出现在在数据统计会出错,用加载树时无法计算

[此贴子已经被作者于2018/8/21 19:18:20编辑过]

--  作者:3076469014
--  发布时间:2018/8/21 19:39:00
--  

新建表,输入代码,统计结果是空白的