以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 跨表统计后台数据 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=161363) |
-- 作者:15666282205 -- 发布时间:2021/3/15 10:36:00 -- 跨表统计后台数据 老师,我编写了跨表统计代码,问题:如果显示统计数据的表已经加载了某些行,则已加载的行统计正常,但是没加载的行就不执行统计,我想实现全部后台没加载的行也能统计。我是把被统计的表的数据用代码重置一下触发统计的,请您指导。 以下代码在被统计表的“datacolchangend”事件中 \'-----------------------------自动统计数据------------------------ 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 |
-- 作者:有点蓝 -- 发布时间:2021/3/15 10:41:00 -- "合同信息"表的数据肯定要加载才能统计。"合同信息"要统计的其它表数据如果没有加载,可以改后台统计:http://www.foxtable.com/webhelp/topics/2897.htm |
-- 作者:15666282205 -- 发布时间:2021/3/15 11:15:00 -- 老师,我想实现后台跨表统计,如被统计的表数据有变动,但是显示统计数据的“合同信息”表没加载,如何在后台就相应的改动统计结果? |
-- 作者:有点蓝 -- 发布时间:2021/3/15 11:24:00 -- 那要自己使用sql统计处理:http://www.foxtable.com/webhelp/topics/0696.htm |
-- 作者:15666282205 -- 发布时间:2021/3/15 12:12:00 -- 老师,看了,太难,没大用SQL,麻烦您在我的代码基础上修改一下行吗?被统计的表是“现金日记账”的“收款“列,谢谢! [此贴子已经被作者于2021/3/15 12:12:47编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/3/15 13:34:00 -- "合同信息"表datacolchaged事件代码发上来 |
-- 作者:15666282205 -- 发布时间:2021/3/15 14:41:00 -- 以下代码在“现金日记账”表的“datacolchangend”事件中,如果“价税合计”,改变,把合计数在“合同信息”表里相应改变。"合同信息"表datacolchaged事件没有代码 \'-----------------------------自动统计数据------------------------ 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 |
-- 作者:有点蓝 -- 发布时间:2021/3/15 14:44:00 -- "合同信息"表datacolchaged事件没有代码,那么上面的代码就没有任何用处。RaiseDataColChanged就是用来触发"合同信息"表datacolchaged事件的 |
-- 作者:15666282205 -- 发布时间:2021/3/15 14:54:00 -- 老师,有代码,还取了两个表的数。问题是被取数的表如果不加载,就没法取数,设置成后台取数就可以了。 \'-----------------------自动统计------------------------- If e.DataCol.Name = "序号" Then Dim Filter As String = "[合同序号] = \'" & e.NewValue & "\'" e.DataRow("收入") = DataTables("现金日记账").Compute("Sum(收入)", Filter) e.DataRow("预计成本利润_拨款") = DataTables("现金日记账").Compute("Sum(支出)", Filter) e.DataRow("已执行金额") = DataTables("莱矿总包合同").Compute("Sum(价税合计)", Filter) End If
|
-- 作者:有点蓝 -- 发布时间:2021/3/15 15:02:00 -- 参考:http://www.foxtable.com/webhelp/topics/2897.htm DataTables("现金日记账").SQLCompute("Sum(收入)", Filter)
|