Foxtable(狐表)用户栏目专家坐堂 → 授权求助


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

主题:授权求助

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


加好友 发短信
等级:狐精 帖子:3094 积分:20656 威望:0 精华:0 注册:2016/3/28 16:57:00
授权求助  发帖心情 Post By:2019/10/28 14:30:00 [只看该作者]

老师,麻烦看看我以下代码授权,为什么加都集合有两个26,没有2,代码如下:

If Tables("用户管理").rows.Count=0 Then Return
Dim s As String = Nothing
'加入到可见集合
Dim tr1 As WinForm.TreeView = e.Form.Controls("TreeView3")
For Each nd As WinForm.TreeNode In tr1.AllNodes  '同步子节点选中状态
    If nd.Checked=True Then
        Dim dr As DataRow = DataTables("导航").Find("分类 = '" & nd.name & "' Or 分组 = '" & nd.name & "' or 名称 = '" & nd.name & "'")
        If dr IsNot Nothing Then
            If s<>Nothing Then s=s & ","
            s=s & dr("编号")
        End If
    End If
Next
Tables("用户管理").Current("菜单可见集合")=s

 

导航表结构和加载到集合结果如下:

  


图片点击可在新窗口打开查看此主题相关图片如下:导航表结构.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:集合.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2019/10/28 14:30:06编辑过]

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/28 14:45:00 [只看该作者]

nav26字符串包含nav2,建议把nav2改为nav02

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


加好友 发短信
等级:狐精 帖子:3094 积分:20656 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/10/28 14:57:00 [只看该作者]

测试了02也是这种情况,1和11都可以,应该不是这个问题,2和26应该也行才对啊


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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/28 15:13:00 [只看该作者]

Dim tr1 As WinForm.TreeView = e.Form.Controls("TreeView3")
For Each nd As WinForm.TreeNode In tr1.AllNodes  '同步子节点选中状态
    If nd.Checked=True Then
msgbox("分类 = '" & nd.name & "' Or 分组 = '" & nd.name & "' or 名称 = '" & nd.name & "'")
        Dim dr As DataRow = DataTables("导航").Find("分类 = '" & nd.name & "' Or 分组 = '" & nd.name & "' or 名称 = '" & nd.name & "'")
        If dr IsNot Nothing Then
msgbox(dr("编号")) 查询到nav26的时候,上面显示什么条件
            If s<>Nothing Then s=s & ","
            s=s & dr("编号")
        End If
    End If
Next

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


加好友 发短信
等级:狐精 帖子:3094 积分:20656 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/10/28 15:19:00 [只看该作者]

显示第一个26前:


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20191028151741.png
图片点击可在新窗口打开查看
显示第二个26前:


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20191028151810.png
图片点击可在新窗口打开查看

 

我后面的分类也是这种情况。

[此贴子已经被作者于2019/10/28 15:20:22编辑过]

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/28 15:34:00 [只看该作者]

查询条件的问题,使用的是or查询,也就是2和26都符合上面2个条件,默认取第一个。nav26的_sortkey或者_Identify应该比nav2小,所有都取nav26

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


加好友 发短信
等级:狐精 帖子:3094 积分:20656 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/10/28 15:51:00 [只看该作者]

请教老师怎么修改?

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/28 16:08:00 [只看该作者]

我也不知道,这个是您的业务逻辑问题。自己把流程搞清楚。

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


加好友 发短信
等级:狐精 帖子:3094 积分:20656 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/11/1 10:18:00 [只看该作者]

老师,我发现这个问题是因为有相同的名称造成的,相同名称不能避免,这个怎么来解决呢?

就是查询条件问题,还得请老师指点怎么来写这个条件,我分类、分组、名称的表结构如下:


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20191101101713.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2019/11/1 10:19:36编辑过]

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/1 10:24:00 [只看该作者]

那就不要偷懒了,判断一下节点level,如果是第一级,

Dim dr As DataRow = DataTables("导航").Find("分类 = '" & nd.name & "' and 分组 is null")

第二级
Dim dr As DataRow = DataTables("导航").Find("分类 = '" & nd.parnetnode.name & "' and 分组 = '" & nd.name & "' and 名称 is null")

第三级
Dim dr As DataRow = DataTables("导航").Find("分类 = '" & nd.parnetnode.parnetnode.name & "' and 分组 = '" & nd.parnetnode.name & "' and 名称 = '" & nd.name & "'")

 回到顶部