以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于动态加载 请教 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=149247) |
-- 作者:yifan3429 -- 发布时间:2020/4/27 12:04:00 -- 关于动态加载 请教 新建一张 权限表 有窗口 主表 关联表 三列 我通过目录树 选择对应的窗口 打开主表 然后同时也加载关联表 系统默认是不加载任何表和数据 点击目录树时从后台获取加载条件 数据源是 sql 2019 原来的做法是将窗口和主表同名,现在想修改下。 If e.Node.Level = 1 Then If Forms(e.Node.Text).TableName <> "" Then \'不是模式,独立窗口 If DataTables.Contains(Forms(e.Node.Text).TableName) = False Then \'如果表C没有加载 DataTables.Load(Forms(e.Node.Text).TableName) \'加载表C End If Forms(e.Node.Text).show MainTable = Tables(Forms(e.Node.Text).TableName) Else Forms(e.Node.Text).show End If Else msgbox( e.node.text & " 正在测试 中尚未开放") End If [此贴子已经被作者于2020/4/27 12:08:35编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/4/27 13:39:00 -- 关联表要一起加载:http://www.foxtable.com/webhelp/topics/2755.htm 通过表名使用find到权限表查询得到关联表,合并到一起加载
|
-- 作者:yifan3429 -- 发布时间:2020/4/27 18:36:00 -- If e.Node.Level = 1 Then If Forms(e.Node.Text).TableName <> "" Then \'不是模式,独立窗口 If DataTables.Contains(Forms(e.Node.Text).TableName) = False Then \'如果表C没有加载 DataTables.Load(Forms(e.Node.Text).TableName) \'加载表C End If Forms(e.Node.Text).show MainTable = Tables(Forms(e.Node.Text).TableName) Else Forms(e.Node.Text).show End If Else msgbox( e.node.text & " 正在测试 中尚未开放") End If 在这个代码基础上 我想实现 当我点击节点时通过节点名在权限表里面的窗口列找到窗口名,同时打开主表列对应的主表和关联列对应的关联表 关联表的间隔符号是 |
不会写。求助老师 |
-- 作者:有点蓝 -- 发布时间: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编辑过]
|
-- 作者:yifan3429 -- 发布时间:2020/4/28 0:39:00 -- Dim cmd As New SQLCommand Dim dt As DataTable cmd.Co nnecti cmd.Co mmandText = "SELE CT DISTINCT 子菜单,权限,用户 From {菜单目录}" dt = cmd.ExecuteReader( ) DataTables("菜单目录").LoadFilter = "" DataTables("菜单目录").Load Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1") tr.BuildTree("菜单目录", "子菜单|权限","[用户] Like \'%" & User.Name & "%\'", "_sortkey, _Identify") 上面的代码在 菜单目录 不被加载时应该是可以建立目录树的 不知哪里设计错误不能 建立目录树。 希望后台数据建立目录树 ,不需要加载数据或表,可行吗?还是必须加载表才能执行目录树 --------------------------- 提示 --------------------------- 不存在名称为"菜单目录"的DataTable! --------------------------- 确定 --------------------------- [此贴子已经被作者于2020/4/28 0:41:36编辑过]
|
-- 作者:yifan3429 -- 发布时间:2020/4/28 1:11:00 -- 这个先后顺序有问题哦,流程是先打开打开窗口,然后打开对应表 最后打开关联表,还需要麻烦老师 If e.Node.Level = 1 Then If Forms(e.Node.Text).TableName <> "" Then \'不是模式,独立窗口 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 下面需要直接打开窗口 通知切换到对用的表 Forms(e.Node.Text).show 定位到 权限=\'" & e.node.text MainTable = Tables(Forms(e.Node.Text).TableName) 定位到 对应表 Else Forms(e.Node.Text).show End If End If Else msgbox( e.node.text & " 正在测试 中尚未开放") End If [此贴子已经被作者于2020/4/28 2:49:40编辑过]
|
-- 作者:有点蓝 -- 发布时间: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楼,只要不是模式窗口,无所谓前后顺序。不过窗口用到的表肯定要在窗口打开前先加载 |
-- 作者:yifan3429 -- 发布时间:2020/4/28 11:40:00 -- If e.Col.Name = "加载" Then Dim dr As DataRow \'If DataTables.Contains("主表") = False Then If DataTables.Contains(dr("主表")) = False Then \'如果表C没有加载 DataTables.Load(dr("主表") & "|" & dr("关联表")) End If End If 上面的代码想实现单机加载列 在同行获取主表和 关联表加载进来
|
-- 作者:有点蓝 -- 发布时间:2020/4/28 13:38:00 -- dr改为e.row |