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


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

主题:关于动态加载 请教

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


加好友 发短信
等级:九尾狐 帖子:2456 积分:22663 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2020/5/5 2:06:00 [只看该作者]

If e.Node.Level = 1 Then
    If Forms(e.Node.Text).TableName <> "" Then '不是模式,独立窗口

        Dim cmd As New SQLCom mand
        Dim dt As DataTable
        cmd.Con necti
        cmd.Com mandText = "SELE CT DISTINCT 子菜单,权限 From {菜单目录} where [主表] Like '%" & e.node.text & "%'"
        dt = cmd.ExecuteReader( )
        
        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("主表")) '加载表C
                'DataTables.Load(dr("主表") & "|" & dr("关联表")) '加载表C
            End If           
            
            Forms(e.Node.Text).show
            MainTable = Tables(Forms(e.Node.Text).TableName)
        Else
            Forms(e.Node.Text).show
        End If
    End If
Else
    msgbox( e.node.text & "  正在测试 中尚未开放")
End If



加载了数据还是有错误

---------------------------
提示
---------------------------
不存在名称为"菜单目录"的DataTable!
---------------------------
确定   
---------------------------


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


加好友 发短信
等级:超级版主 帖子:106081 积分:539504 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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   
……

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


加好友 发短信
等级:九尾狐 帖子:2456 积分:22663 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2020/5/5 9:04:00 [只看该作者]

If e.Col.Name = "卸载" Then
    Dim dr As DataRow
    'If DataTables.Contains("主表") = False Then
    If DataTables.Contains(e.Row("主表")) Then '如果表C没有加载
        DataTables.Unload(e.Row("主表") & "|" & e.Row("关联表"))   如果表以加载可以正常操作,如果有一部分表没有加载,卸载时就会报错,求助如何做好判断不报错的卸载呢
    End If
End If

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


加好友 发短信
等级:超级版主 帖子:106081 积分:539504 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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)

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


加好友 发短信
等级:九尾狐 帖子:2456 积分:22663 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2020/5/7 13:45:00 [只看该作者]

 If Forms(e.Node.Text).TableName <> "" Then '不是模式,独立窗口
        
        
        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
            Forms(e.Node.Text).show
            MainTable = Tables(Forms(e.Node.Text).TableName)
        Else
            Forms(e.Node.Text).show
        End If
    End If

在表属性内使用正常

If e.Col.Name = "加载" Then
    Dim dr As DataRow
    'If DataTables.Contains("主表") = False Then
    If DataTables.Contains(e.Row("主表")) = False Then '如果表C没有加载
        DataTables.Load(e.Row("主表") & "|" & e.Row("关联表"))
    End If
End If

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


加好友 发短信
等级:超级版主 帖子:106081 积分:539504 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/7 14:06:00 [只看该作者]

如果是窗口用到这些表,必须先加载表,再打开窗口

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


加好友 发短信
等级:超级版主 帖子:106081 积分:539504 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/7 14:09:00 [只看该作者]

是关联表本身不能加载,还是关联表的数据不能加载?

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


加好友 发短信
等级:九尾狐 帖子:2456 积分:22663 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2020/5/7 20:03:00 [只看该作者]

老师你好  我需要的加载关联表,跟主表同时加载进来到系统。然后才能打开窗口,

需要实现下面的代码一样的功能,不过我现在是在目录树里设计

If e.Col.Name = "加载" Then
    Dim dr As DataRow
    'If DataTables.Contains("主表") = False Then
    If DataTables.Contains(e.Row("主表")) = False Then '如果表C没有加载
        DataTables.Load(e.Row("主表") & "|" & e.Row("关联表"))
    End If
End If

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


加好友 发短信
等级:超级版主 帖子:106081 积分:539504 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2456 积分:22663 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2020/5/7 21:30:00 [只看该作者]

报错 列“关联表”不属于表 。
图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20200507213023.png
图片点击可在新窗口打开查看

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

 回到顶部
总数 24 上一页 1 2 3 下一页