以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  及时统计的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=105751)

--  作者:douglas738888
--  发布时间:2017/8/25 13:34:00
--  及时统计的问题

请教老师,下列代码是子表的,正常增加行填入数据,能及时统计到父表中,没有问题,

 

现在的问题是,如果子表删除一行,原来子表统计给父表的数据,不会变化,除非子表再新增行填入数据或修改原来子表的数据,父表数据才会变化

用了强制刷新也不行  Tables("合同主表").Refresh

 

If e.DataCol.Name = "付款金额" Then  
    Dim pr As DataRow
        pr = DataTables("合同主表").Find("档案编号 = \'" & e.DataRow("档案编号") & "\'")
    If pr IsNot Nothing Then
       If e.DataRow("支出类别") = "成本费用" Then
        pr("成本费用")= DataTables("合同付款").Compute("Sum(付款金额)","[档案编号] = \'" & e.DataRow("档案编号") & "\'and 支出类别 = \'成本费用\'")
      End If   
   End If
End If


--  作者:有点甜
--  发布时间:2017/8/25 14:45:00
--  

DataRowDeleting事件

 

    Dim pr As DataRow
    pr = DataTables("合同主表").Find("档案编号 = \'" & e.DataRow("档案编号") & "\'")
    If pr IsNot Nothing Then
        If e.DataRow("支出类别") = "成本费用" Then
            pr("成本费用")= DataTables("合同付款").Compute("Sum(付款金额)","[档案编号] = \'" & e.DataRow("档案编号") & "\'and 支出类别 = \'成本费用\'") - e.datarow("付款金额")
        End If
    End If

[此贴子已经被作者于2017/8/25 14:47:50编辑过]