以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  父表的数据如何自动从子表中自动统计并写到父表中?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=109461)

--  作者:godcedar
--  发布时间:2017/11/13 1:05:00
--  父表的数据如何自动从子表中自动统计并写到父表中?

现有二张表案卷库和文件库,二者通过案卷库中的档号与文件库中的案卷号相关联。一个案卷有多个文件,是一对多的关系。现求教:

案卷库中某一条记录的卷内份数就是相关联的文件库中的记录数;

案卷库中某一条记录的总页数就是相关联的文件库中的页数之和;

案卷库中某一条记录的起止时间就是相关联的文件库中的最早成文日期至成迟成文日期,格式如2017010520171229.

如下图:1001

 
此主题相关图片如下:父表数据自动统计求教192.png
按此在新窗口浏览图片

1002


此主题相关图片如下:父表数据自动统计求教200.png
按此在新窗口浏览图片
 

请问案卷库中起止日期、卷内份数和总页数这三个值如何使用代码,让软件在录入下一条记录时,自动从文件库的页数、相关记录数和成文日期中进行计算,写入到案卷库中。


--  作者:有点甜
--  发布时间:2017/11/13 8:58:00
--  

1、2、可以直接用表达式计算

 

http://www.foxtable.com/webhelp/scr/0100.htm

 

http://www.foxtable.com/webhelp/scr/0099.htm

 

3、需要编写代码生成,子表的datacolchanged事件

 

If e.DataCol.Name = "成文日期" Then

    Dim drs = e.DataTable.Select("成文日期 is not null and 案卷号 = \'" & e.DataRow("案卷号") & "\'", "成文日期")

    Dim str As String = ""

    If drs.count > 0 Then str &= drs(0)("成文日期")

    If drs.count > 1 Then str &= "-" & drs(drs.count-1)("成文日期")

    Dim pdr = e.datarow。getParentRow("案卷库")

    If pdr IsNot Nothing Then pdr("起止日期") = str

End If


--  作者:godcedar
--  发布时间:2017/11/13 18:09:00
--  
谢谢!


--  作者:godcedar
--  发布时间:2017/11/13 21:51:00
--  
起止日期的代码不起作用是怎么回事?二者关联是通过案卷库中的档号与文件库中的案卷号关联的。起止日期就是关联文件库中的最早成文日期-最迟成文日期,如案卷库档号为1-001的起止日期格式如2016010920170923.
--  作者:有点甜
--  发布时间:2017/11/13 23:31:00
--  

datacolchanged事件写代码了吗?加入msgbox,触发事件了吗?

 

具体例子发上来测试。


--  作者:godcedar
--  发布时间:2017/11/15 23:18:00
--  
案例见附件
--  作者:godcedar
--  发布时间:2017/11/15 23:18:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:档案管理.zip

开发者密码:joshua2415


[此贴子已经被作者于2017/11/15 23:19:29编辑过]

--  作者:有点甜
--  发布时间:2017/11/16 8:54:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:档案管理 - 副本.foxdb