以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于跨表统计更新  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=115723)

--  作者:lgj716330
--  发布时间:2018/3/13 12:44:00
--  [求助]关于跨表统计更新

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.foxdb

 

为什么我“同期预算”这表的科目名称改了后,“预算数据汇总”这表重置列的时候数据变更不过来呢


--  作者:有点甜
--  发布时间:2018/3/13 15:02:00
--  

1、你datacolchanged事件,是根据列【成本大类】统计预算表数据的,你修改科目名称不会影响统计,你修改【成本大类】列才会影响统计;

 

2、如果是【之前统计的数据不清空】的问题,代码改成

 

Select Case e.DataCol.Name
    Case  "月份","部门名称"
        Dim dr  As  DataRow = e.DataRow
       
        If dr.IsNull("月份") OrElse dr.IsNull("部门名称")  Then
            dr("公关招待成本") =  Nothing
        Else
            Dim filter As String
            filter = "月份 = \'" & dr("月份") & "\' And 部门名称 = \'" & dr("部门名称") & "\' and [成本大类]=\'公关招待成本\'"
           
            e.DataRow("公关招待成本") = DataTables("同期预算").Compute("Sum(预算金额)",filter)
        End  If
       
       
        If dr.IsNull("月份") OrElse dr.IsNull("部门名称")  Then
            dr("其他营运成本") =  Nothing
        Else
            Dim filter As String
            filter = "月份 = \'" & dr("月份") & "\' And 部门名称 = \'" & dr("部门名称") & "\' and [成本大类]=\'其他营运成本\'"
           
            e.DataRow("其他营运成本") = DataTables("同期预算").Compute("Sum(预算金额)",filter)
           
        End  If
       
       
        If dr.IsNull("月份") OrElse dr.IsNull("部门名称")  Then
            dr("资金利息成本") =  Nothing
        Else
            Dim filter As String
            filter = "月份 = \'" & dr("月份") & "\' And 部门名称 = \'" & dr("部门名称") & "\' and [成本大类]=\'资金利息成本\'"
            e.DataRow("资金利息成本") = DataTables("同期预算").Compute("Sum(预算金额)",filter)
        End  If
    End  Select