Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共9 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

1楼
scofields 发表于: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()
       
2楼
y2287958 发表于: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编辑过]
3楼
cd_tdh 发表于: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

4楼
scofields 发表于: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")
5楼
cd_tdh 发表于:2024/5/29 13:12:00
关联表就没法这样一个一个弄了,建议:
1、常规逻辑是加载了的表就不要卸载了,卸载了在加载有需要时间;
2、一次需要同时加载30个表吗?既然是加载,就不要一次加载那么多表,用到那几个表就加载那几个表就行了。
6楼
y2287958 发表于:2024/5/29 14:17:00
加载主表的同时加载关联表即可
7楼
scofields 发表于:2024/5/29 14:22:00
嗯!感谢楼主指点,我还是选择既然加载了就不要卸载了吧
8楼
scofields 发表于:2024/5/29 14:22:00
这个没用,你看我上面同时主表、子表都卸载(并且是在两个表同时加载的情况下)
9楼
y2287958 发表于:2024/5/29 14:40:00
无语
共9 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .01953 s, 2 queries.