以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 动态卸载表 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=189566) |
-- 作者:creastzh -- 发布时间:2023/12/8 21:22:00 -- 动态卸载表 |
-- 作者:creastzh -- 发布时间:2023/12/8 21:36:00 -- 我想实现根据菜单需要动态卸载无关表, 所以编写了这个函数 \'CloseUnrelatedTable_And_OpenRelatedTable 关闭无关的表,打开与本项工作有关的表, \'基本表Start,Data,ResourceID,EMlist保持常开,其它表按需要加载 \'后面用其删除无关表单,同时打开相关表单,引用方式: \'Functions.Execute("CloseUnrelatedTable_And_OpenRelatedTable","主文件名") \'MessageBox.Show(1) Dim dtn As String = Args(0) \'4个基本表不允许关闭 Dim FilesU As String = "Start|Data|ResourceID|EMList|" Dim Fs2 As String Dim dr As DataRow = DataTables("Data").Find("菜单_名称 = \'" & dtn & "\'") If dr IsNot Nothing Then If dr.IsNull("菜单_开启的表格名") Then Return Nothing Else SystemReady = False MainTable = Tables("Data") For Each dt As DataTable In DataTables If Not FilesU.Contains(dt.Name) Then If dt.HasChanges = True Then dt.Save End If If Fs2 = "" Then Fs2 = dt.Name Else Fs2 = Fs2 & "|" & dt.Name End If DataTables.Unload(dt.Name) \'卸载无关表 End If Next Output.Show("需要关闭:" & Fs2) \'DataTables.Unload(Fs2) MessageBox.Show(1) Dim Multi As String = dr("菜单_开启的表格名") Output.show("需要打开:" & Multi) Dim Files As Array = Multi.Split("|") For i As Integer = 0 To Files.Length - 1 Dim dtn1 As String = Files(i) If Not DataTables.Contains(dtn1) Then DataTables.Load(dtn1) \'加载表 End If Next SystemReady = True End If End If 但在实际点击菜单后程序并没有如我所愿 先卸载所有无关表, 然后加载需要的表, 而是不断跳出下面这个提示: 甚至 "MessageBox.Show(1)"这个问题测试都没有到达. [此贴子已经被作者于2023/12/8 21:37:21编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/12/9 8:06:00 -- 这个表有没有和其它表做关联?如果有关联必须同时卸载 试试 …… Fs2 = Fs2 & "|" & dt.Name End If if DataTables.Contains(dt.Name) then
DataTables.Unload(dt.Name) \'卸载无关表 end if End If Next |
-- 作者:有点蓝 -- 发布时间:2023/12/9 8:08:00 -- 个人的建议是没有必要卸载表,把数据清空即可,比如 …… Fs2 = Fs2 & "|" & dt.Name End If
End If Next |
-- 作者:creastzh -- 发布时间:2023/12/9 8:44:00 -- 老师, 我今天在论坛搜索了关键词"卸载", 其中有一篇"关于动态加载与卸载的 - 专家坐堂 - Foxtable(狐表) - 新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!", 2015年的这个求助帖与我描述的问题类似, 那后面我就不纠结 先卸载再加载这个问题了,按您建议我直接进行数据清空处理. 谢谢! |