以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于动态加载 请教  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=149247)

--  作者:有点蓝
--  发布时间:2020/4/27 13:39:00
--  
关联表要一起加载:http://www.foxtable.com/webhelp/topics/2755.htm
通过表名使用find到权限表查询得到关联表,合并到一起加载

--  作者:有点蓝
--  发布时间:2020/4/27 20:22:00
--  
If DataTables.Contains(Forms(e.Node.Text).TableName) = False Then \'如果表C没有加载
dim dr as datarow = DataTables("权限").find("窗口=\'" & e.node.text & "\'")
if dr isnot nothing then 
DataTables.Load(dr("对应表") & "|" & dr("关联表")) \'加载表C
end if
end if
[此贴子已经被作者于2020/4/27 20:22:59编辑过]

--  作者:有点蓝
--  发布时间:2020/4/28 8:38:00
--  
回5楼

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.Co nnecti
cmd.Co mmandText = "SELECT DISTINCT 子菜单,权限 From {菜单目录} where [用户] Like \'%" & User.Name & "%\'"
dt = cmd.ExecuteReader( )
Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
tr.BuildTree(dt, "子菜单|权限")

--  作者:有点蓝
--  发布时间:2020/4/28 8:44:00
--  
回6楼,只要不是模式窗口,无所谓前后顺序。不过窗口用到的表肯定要在窗口打开前先加载
--  作者:有点蓝
--  发布时间:2020/4/28 13:38:00
--  
dr改为e.row
--  作者:有点蓝
--  发布时间:2020/5/5 8:58:00
--  
……
        If DataTables.Contains(Forms(e.Node.Text).TableName) = False Then \'如果表C没有加载
            Dim dr As DataRow = dt.find("权限=\'" & e.node.text & "\'")            
            
            If dr IsNot Nothing Then
                DataTables.Load(dr("主表")) \'加载表C
                \'DataTables.Load(dr("主表") & "|" & dr("关联表")) \'加载表C
            End If   
……

--  作者:有点蓝
--  发布时间:2020/5/5 9:26:00
--  
比如:
dim ar() as string = (e.Row("主表") & "|" & e.Row("关联表")).split("|")
dim str as string
for each n as string in ar
if DataTables.Contains(n) then str = str & "|" & n
next
str = str.trim("|")
msgbox(str)
DataTables.Unload(str)

--  作者:有点蓝
--  发布时间:2020/5/7 14:06:00
--  
如果是窗口用到这些表,必须先加载表,再打开窗口
--  作者:有点蓝
--  发布时间:2020/5/7 14:09:00
--  
是关联表本身不能加载,还是关联表的数据不能加载?
--  作者:有点蓝
--  发布时间:2020/5/7 21:09:00
--  
自己调试一下


            If dr IsNot Nothing Then
msgbox(dr("主表") & "|" & dr("关联表"))
                ‘这句代码去掉’DataTables.Load(dr("主表")) \'加载表C
                DataTables.Load(dr("主表") & "|" & dr("关联表")) \'加载表C   这段加入后不能打开关联表的数据
msgbox(“这里可以弹出肯定就加载”)
            End If

[此贴子已经被作者于2020/5/7 21:09:58编辑过]