以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何根据档号关联挂接?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=179823)

--  作者:godcedar
--  发布时间:2022/9/13 0:31:00
--  如何根据档号关联挂接?
我在Project\\attachments\\文件夹下面设置Data文件夹,data文件夹下面按年度设置子文件夹,如2020,2021年。每个年度下面有很多按档号命名的PDF文件,如092-1-2021Y-001等。在Foxtable中的多张表(如文件库)中均有档号和数字档案二个字段。我想在菜单中做一个“挂接”按钮。如何将Data文件夹下面按年度存放的扫描件根据是否与数据库,如文件库中的档号匹配,匹配的将其批量写到相应的数字档案字段中,如2020\\12608-1-2020Y-001.pdf。

图片点击可在新窗口打开查看此主题相关图片如下:11.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:22.png
图片点击可在新窗口打开查看


[此贴子已经被作者于2022/9/13 7:19:27编辑过]

--  作者:有点蓝
--  发布时间:2022/9/13 8:58:00
--  
参考:http://www.foxtable.com/webhelp/topics/0331.htm

For Each dir As String In FileSys.GetDirectories(projectpath & "attachments\\data")
For Each File As String In FileSys.GetFiles(dir)
   dim fn as string = FileSys.GetName(File)
dim dh as string = fn.split(".")(0)
dim dr as datarow = datatables("文件库").find("档号=\'" & dh & "\'")
if dr isnot nothing then
dr("数字档案") = FileSys.GetName(dir) & "\\" & fn
end if
Next
Next

--  作者:godcedar
--  发布时间:2022/9/13 22:57:00
--  
谢谢!我测试一下


--  作者:godcedar
--  发布时间:2022/9/14 22:53:00
--  
我测试了。很好用。谢谢!如果有多个表,如案卷库、照片案卷、照片卷内、声像档案、实物档案等都有“数字档案”这个字段,能“挂接”。能写个通用代码吗?
--  作者:有点蓝
--  发布时间:2022/9/15 8:59:00
--  
遍历多个表

for each name as string in {"案卷库","照片案卷",............}
For Each dir As String In FileSys.GetDirectories(projectpath & "attachments\\data")
For Each File As String In FileSys.GetFiles(dir)
   dim fn as string = FileSys.GetName(File)
dim dh as string = fn.split(".")(0)
dim dr as datarow = datatables(name).find("档号=\'" & dh & "\'")
if dr isnot nothing then
dr("数字档案") = FileSys.GetName(dir) & "\\" & fn
end if
Next
Next
next

--  作者:godcedar
--  发布时间:2022/9/15 22:36:00
--  
非常感谢!