以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]关于父表数据自动统计问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=104209) |
-- 作者:云淡风轻 -- 发布时间:2017/7/25 14:25:00 -- [求助]关于父表数据自动统计问题 例子:父表A有字段:学号,姓名,科目数,总分; 子表B有字段:科目号,名称,分数,学号。 两表通过学号关联起来,比如小明学了6门课,那么子表就有6条记录,即6门课成绩, 然后要求是:能够将子表的分数之和自动统计到父表的“总分”字段中,子表的条目数统计到“科目数”, 而且是子表每新增一行,自动统计一次,代码如何设置呢?谢谢!
|
-- 作者:有点蓝 -- 发布时间:2017/7/25 15:54:00 -- 参考: |
-- 作者:云淡风轻 -- 发布时间:2017/7/26 9:52:00 -- 1、以下代码写到文件库表事件的DataRowAdded中 e.DataTable.save() Dim pr As DataRow = e.DataRow.GetParentRow("案卷库") If pr IsNot Nothing Then pr("卷内份数") = e.DataTable.DataRows.Count End If 2、以下代码写到文件库表事件的BeforeDeleteDataRow中 e.DataTable.save() Dim pr As DataRow = e.DataRow.GetParentRow("案卷库") If pr IsNot Nothing Then pr("卷内份数") = e.DataTable.DataRows.Count-1 pr("总页数") = DataTables("文件库").Compute("Sum(总页数)","[案卷号] = \'" & e.DataRow("案卷号") & "\' and _Identify <> " & e.DataRow("_Identify")) pr("起止日期") = DataTables("文件库").Compute("min(成文日期)","[案卷号] = \'" & e.DataRow("案卷号") & "\' and _Identify <> " & e.DataRow("_Identify")) " - " DataTables("文件库").Compute("max(成文日期)","[案卷号] = \'" & e.DataRow("案卷号") & "\' and _Identify <> " & e.DataRow("_Identify")) End If 3、以下代码写到文件库表事件的DataColChanged中 e.DataTable.save() Dim pr As DataRow = e.DataRow.GetParentRow("案卷库") If pr IsNot Nothing Then pr("总页数") = DataTables("文件库").Compute("Sum(总页数)","[案卷号] = \'" & e.DataRow("案卷号") & "\'") pr("起止日期") = DataTables("文件库").Compute("min(成文日期)","[案卷号] = \'" & e.DataRow("案卷号") & "\'") " - " DataTables("文件库").Compute("max(成文日期)","[案卷号] = \'" & e.DataRow("案卷号") & "\'") End If |
-- 作者:云淡风轻 -- 发布时间:2017/7/26 9:54:00 -- 我自己整理了一下 |
-- 作者:有点甜 -- 发布时间:2017/7/26 10:07:00 -- 回复3楼,如果代码还有问题,做个具体例子发上来测试。 |