Foxtable(狐表)用户栏目专家坐堂 → 关于动态加载表的问题


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

主题:关于动态加载表的问题

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


加好友 发短信
等级:二尾狐 帖子:564 积分:4561 威望:0 精华:0 注册:2016/4/17 20:05:00
关于动态加载表的问题  发帖心情 Post By:2024/5/29 0:36:00 [只看该作者]

这个动态加载问题,经我检测会检测加载顺序,所以进行了改良,有没更简便的方式,我有个环节有20个表,照这样的写法,简直会累死啊。求版主给个简便的方式

Select Case e.Link.Name
            Case "资金入账"
                If DataTables.Contains("T_资金表") = False AndAlso DataTables.Contains("T_客户表") = False AndAlso DataTables.Contains("T_付款方式") = False Then
                    DataTables.Load("T_资金表|T_客户表|T_付款方式")
                    ElseIf DataTables.Contains("T_资金表") = False AndAlso DataTables.Contains("T_付款方式") = false Then
                    DataTables.Load("T_资金表|T_付款方式")
                    ElseIf DataTables.Contains("T_资金表") = False
                     DataTables.Load("T_资金表")
                    ElseIf DataTables.Contains("T_付款方式") = False
                     DataTables.Load("T_付款方式")
                End If
                MainTable = Tables("T_资金表")
                Forms("资金入账").Open()
       

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


加好友 发短信
等级:狐神 帖子:4761 积分:34613 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2024/5/29 8:31:00 [只看该作者]

Dim 表名组 As String() = "T_资金表|T_客户表|T_付款方式".Split ("|")
For Each 表名 As String In 表名组
    If DataTables.Contains(表名) = False Then
        DataTables.Load(表名)
    End If 
Next 
[此贴子已经被作者于2024/5/29 8:31:17编辑过]

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


加好友 发短信
等级:狐精 帖子:3213 积分:21351 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2024/5/29 9:05:00 [只看该作者]

Dim Value As String = "T_资金表|T_客户表|T_付款方式"
Dim sps() As Char = {"|"}
Dim Names() As String = Value.Split(sps)
For Each name As String In Names
    If DataTables.Contains(name) = False Then
        DataTables.Load(name)
    End If 
Next


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


加好友 发短信
等级:二尾狐 帖子:564 积分:4561 威望:0 精华:0 注册:2016/4/17 20:05:00
  发帖心情 Post By:2024/5/29 12:57:00 [只看该作者]

感谢老师给予指导。按照你这个格式,我套用卸载,发现有问题,其中订单表与订单明细表是关联表,如何改进?
Select Case e.Page.Name
    Case  "系统刷新"
        Select Case e.Link.Name
            Case "系统刷新"
                Dim Value1 As String = "T_销售方式|T_订单表|T_订单明细|T_发货单|T_交货地点|T_资金表|T_付款方式|......"省去后面30个表
                Dim sps3() As Char = {"|"}
                Dim Names() As String = Value1.Split(sps3)
                For Each name As String In Names
                    If DataTables.Contains(name) = True Then
                        DataTables.UnLoad(name)
                    End If
                Next
                Forms("主界面窗口").open()
                MainTable=Tables("Maintables")

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


加好友 发短信
等级:狐精 帖子:3213 积分:21351 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2024/5/29 13:12:00 [只看该作者]

关联表就没法这样一个一个弄了,建议:
1、常规逻辑是加载了的表就不要卸载了,卸载了在加载有需要时间;
2、一次需要同时加载30个表吗?既然是加载,就不要一次加载那么多表,用到那几个表就加载那几个表就行了。

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


加好友 发短信
等级:狐神 帖子:4761 积分:34613 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2024/5/29 14:17:00 [只看该作者]

加载主表的同时加载关联表即可

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


加好友 发短信
等级:二尾狐 帖子:564 积分:4561 威望:0 精华:0 注册:2016/4/17 20:05:00
  发帖心情 Post By:2024/5/29 14:22:00 [只看该作者]

嗯!感谢楼主指点,我还是选择既然加载了就不要卸载了吧

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


加好友 发短信
等级:二尾狐 帖子:564 积分:4561 威望:0 精华:0 注册:2016/4/17 20:05:00
  发帖心情 Post By:2024/5/29 14:22:00 [只看该作者]

这个没用,你看我上面同时主表、子表都卸载(并且是在两个表同时加载的情况下)

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


加好友 发短信
等级:狐神 帖子:4761 积分:34613 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2024/5/29 14:40:00 [只看该作者]

无语

 回到顶部