Foxtable(狐表)用户栏目专家坐堂 → 目录树与表对应问题


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

主题:目录树与表对应问题

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


加好友 发短信
等级:小狐 帖子:364 积分:3491 威望:0 精华:0 注册:2012/7/24 7:15:00
目录树与表对应问题  发帖心情 Post By:2018/12/16 16:32:00 [只看该作者]

目录树由表A的列1、列2、列3、列4、列5生成,想要实现点击目录树的任一节点时,表A都筛选出对应的唯一一行。
nodemouseclick事件代码:
Dim tr As WinForm.TreeView = e.Form.Controls("TreeView4")
Dim pd As WinForm.TreeNode = tr.SelectedNode
Dim pf As winform.treenode = pd.parentnode
Dim ph As winform.treenode = pf.parentnode
If e.node.level = 0 Then
    Tables("年度安全目标").filter = "企业名称 = '" & e.node.name & "' and 部门设置 is null and 岗位设置 is null and 第四层机构设置 is null and 第五层机构设置 is null and 第六层机构设置 is null"
ElseIf e.node.level = 1 Then
    Tables("年度安全目标").filter = "企业名称 = '" & pf.name & "' and 部门设置 = '" & e.node.name & "' and 岗位设置 is null and 第四层机构设置 is null and 第五层机构设置 is null and 第六层机构设置 is null"
ElseIf e.node.level = 2 Then
    Tables("年度安全目标").filter = "企业名称 = '" & ph.name & "' and 部门设置 = '" & pf.name & "' and 岗位设置 = '" & e.node.name & "' and 第四层机构设置 is null and 第五层机构设置 is null and 第六层机构设置 is null"
End If

用上面的代码时,level1、level2都可以筛选出唯一一行来,level 0 筛选不出来,错误代码如下:

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

总体想要实现:点击目录树的任一节点时,表A都筛选出对应的唯一一行,同时,点击level0节点的时候,右侧页面集合打开第一个页面,点击level1节点的时候,右侧页面集合打开第二个页面,点击level2节点的时候,右侧页面集合打开第三个页面,实例如下:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:目录树-测试.foxdb


请老师帮忙看一下,或者代码如何简化一下。谢谢

[此贴子已经被作者于2018/12/16 18:14:38编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/16 20:22:00 [只看该作者]


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


加好友 发短信
等级:小狐 帖子:364 积分:3491 威望:0 精华:0 注册:2012/7/24 7:15:00
  发帖心情 Post By:2018/12/17 7:48:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看
只找出图中第一行如何对应?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/17 9:06:00 [只看该作者]

1、参考2楼改写了代码了没有?

 

2、你希望点击【雷达】,显示什么结果?多行的【雷达】?还是一行的【雷达】?

 


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


加好友 发短信
等级:小狐 帖子:364 积分:3491 威望:0 精华:0 注册:2012/7/24 7:15:00
  发帖心情 Post By:2018/12/17 15:49:00 [只看该作者]

可以了,谢谢

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


加好友 发短信
等级:小狐 帖子:364 积分:3491 威望:0 精华:0 注册:2012/7/24 7:15:00
  发帖心情 Post By:2018/12/18 19:00:00 [只看该作者]

又报错:

图片点击可在新窗口打开查看此主题相关图片如下:捕获.jpg
图片点击可在新窗口打开查看

tree4的nodemouseclick代码:

Dim Filter As String
Dim dr As DataRow = e.Node.DataRow '获取生成此节点的行
Select Case e.Node.Level
    Case 0
        Filter = "[企业名称] = '" & dr("企业名称") & "' and [部门设置] is null and [岗位设置] is null and [第四层机构设置] is null and [第五层机构设置] is null and [第六层机构设置] is null"
        Forms("安全信息化系统主窗口").Controls("TabControl5").SelectedIndex = 0
    Case 1
        Filter = "[企业名称] = '" & dr("企业名称") & "' and [部门设置] = '" & dr("部门设置") & "' and [岗位设置] is null and [第四层机构设置] is null and [第五层机构设置] is null and [第六层机构设置] is null"
        Forms("安全信息化系统主窗口").Controls("TabControl5").SelectedIndex = 1
    Case 2
        Filter = "[企业名称] = '" & dr("企业名称") & "' and [部门设置] = '" & dr("部门设置") & "' and [岗位设置] = '" & dr("岗位设置") & "' and [第四层机构设置] is null and [第五层机构设置] is null and [第六层机构设置] is null"
        Forms("安全信息化系统主窗口").Controls("TabControl5").SelectedIndex = 2
Case 3
        Filter = "[企业名称] = '" & dr("企业名称") & "' and [部门设置] = '" & dr("部门设置") & "' and [岗位设置] = '" & dr("岗位设置") & "' and [第四层机构设置] = '" & dr("第四层机构设置") & "' And [第五层机构设置] Is null And [第六层机构设置] Is null"
        Forms("安全信息化系统主窗口").Controls("TabControl5").SelectedIndex = 3
Case 4
        Filter = "[企业名称] = '" & dr("企业名称") & "' and [部门设置] = '" & dr("部门设置") & "' and [岗位设置] = '" & dr("岗位设置") & "' and [第四层机构设置] = '" & dr("第四层机构设置") & "' and [第五层机构设置] = '" & dr("第五层机构设置") & "' and [第六层机构设置] is null"
        Forms("安全信息化系统主窗口").Controls("TabControl5").SelectedIndex = 4
Case 5
        Filter = "[企业名称] = '" & dr("企业名称") & "' and [部门设置] = '" & dr("部门设置") & "' and [岗位设置] = '" & dr("岗位设置") & "' and [第四层机构设置] = '" & dr("第四层机构设置") & "' and [第五层机构设置] = '" & dr("第五层机构设置") & "' and [第六层机构设置] = '" & dr("第六层机构设置") & "' "
        Forms("安全信息化系统主窗口").Controls("TabControl5").SelectedIndex = 5
End Select
Tables("年度安全目标").Filter = Filter


请帮忙看一下是怎么回事?


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


加好友 发短信
等级:超级版主 帖子:107813 积分:548416 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/12/18 20:20:00 [只看该作者]

如果生成tree4的表重新加载了数据,那么对应的tree4也要重新生成,不然使用e.Node.DataRow就会有这个问题

 回到顶部