Foxtable(狐表)用户栏目专家坐堂 → [求助]代码统计子表金额


  共有1975人关注过本帖树形打印复制链接

主题:[求助]代码统计子表金额

帅哥哟,离线,有人找我吗?
zcgmxf
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1652 积分:14691 威望:0 精华:0 注册:2014/6/6 8:42:00
[求助]代码统计子表金额  发帖心情 Post By:2016/3/25 22:32:00 [只看该作者]

老师 ,不用表达式,如何用代码统计父表行对应的子表关联行的数据。谢谢!  父表A,金额 列 是子表B 金额列的和

 

Select Case e.DataCol.Name
    Case "金额"         
        Dim drs As List(of DataRow) = e.DataRow.GetChildRows("表B") '获得该行所有明细
        Dim val As Double
        For Each dr As DataRow In drs
            If dr IsNot Nothing Then
                val =   如果 val = val + dr("金额") ,要是表B有修改,val 会重复统计。
            End If
        Next
        e.DataRow("金额") = val
End Select

[此贴子已经被作者于2016/3/25 23:05:00编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/3/26 7:17:00 [只看该作者]

无论从那个方面来说,这个时候,用表达式是最好的,

如果不用表达式,参考:

http://www.foxtable.com/help/topics/1454.htm

http://www.foxtable.com/help/topics/1472.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
zcgmxf
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1652 积分:14691 威望:0 精华:0 注册:2014/6/6 8:42:00
  发帖心情 Post By:2016/3/26 8:40:00 [只看该作者]

谢谢狐爸!

两个表,收费登记表(父表)和收费明细(子表),通过“科室单号”关联。明细表中的金额是一个表达式,单价* 数量,收费登记表中的金额是一个表达式  Sum(Child(收费登记明细).金额)

在统计时明细表只有10000行,统计收费登记表的月收费情况时,好慢,耗时25秒。所以才用代码的。在帮助中有一节“表达式列的影响”有解决办法,看过没试过。是不是收费登记表afterload 同步加载代码有哦问题:

 

If DataTables("收费登记表").DataRows.Count = 0 Then '如果订单表没有数据
    DataTables("收费明细").LoadFilter = "科室单号 Is Null" '不加载订单明细
Else
    Dim ids As String
    For Each dr As DataRow In DataTables("收费登记表").DataRows
        ids = ids & ",'" & dr("科室单号") & "'"
    Next
    ids= ids.Trim(",")
    DataTables("收费明细").LoadFilter = "科室单号 In (" & ids & ")"
End If
DataTables("收费明细").Load()

[此贴子已经被作者于2016/3/26 8:46:24编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/3/26 9:25:00 [只看该作者]

应该是这个问题了,试试http://www.foxtable.com/help/topics/1935.htm

 回到顶部