Foxtable(狐表)用户栏目专家坐堂 → 权限设置报错“未引用实例对象”


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

主题:权限设置报错“未引用实例对象”

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


加好友 发短信
等级:三尾狐 帖子:662 积分:5405 威望:0 精华:0 注册:2018/5/19 22:27:00
权限设置报错“未引用实例对象”  发帖心情 Post By:2018/8/18 21:59:00 [显示全部帖子]

想实现点击打开窗口后,检索到授权表的职位中包含“管理者”的模块子模块对应的目录树的复选框打勾
老报错请帮忙看下
代码如下:Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree("授权","模块|子模块")
trv.ExpandAll()
Dim dr As DataRow
For Each nd As WinForm.TreeNode In trv.AllNodes
   dr = DataTables("授权").Find("模块 = '" & nd.ParentNode.Name & "' And 子模块 = '" & nd.Name & "'")
    Dim Str As String = dr("职位")
  If Str > "" AndAlso Str.Contains("管理者") Then
    nd.Checked = True
  End If
Next

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


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

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



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


加好友 发短信
等级:三尾狐 帖子:662 积分:5405 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2018/8/19 10:06:00 [显示全部帖子]

好的,谢谢。我有串代码组织了两小时,没结果。想点击treeview1里面的afterchecknode事件。如果点击一级节点,把窗体combobox1的值写到授权表里,要求写到一级节点=授权表-模块列中的值的行;如果二级节点选中,写到授权表-模块-子模块对应的行?

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


加好友 发短信
等级:三尾狐 帖子:662 积分:5405 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2018/8/19 10:06:00 [显示全部帖子]

如果取消复选框打勾,值相应去掉
组织的代码很乱,理不清:
If e.Node.ParentNode IsNot Nothing Then '取消父节点的选中标记,因为选中子节点,就不要选中父节点了
    e.Node.ParentNode.Checked = False
End If
For Each nd As WinForm.TreeNode In e.Node.AllNodes
    nd.Checked  = e.Node.Checked
Next
Dim trv1 As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim nd1 As WinForm.TreeNode = trv1.SelectedNode
Dim dr As DataRow
If nd1.Level = 0 Then
    dr = DataTables("授权").Find("模块 = '" & nd1.Name & "'")
Else
    dr = DataTables("授权").Find("模块 = '" & nd1.ParentNode.Name & "' And 子模块 = '" & nd1.Name & "'")
End If
If dr IsNot Nothing Then
    Dim nms As String
    For Each nd2 As WinForm.TreeNode In trv1.AllNodes
        If nd2.Checked  Then
            nms  = nms & "," &  nd2.Name
        End If
    Next
    If nms > "" Then
        dr("职位") = nms.Trim(",")
    Else
        dr("职位") = Nothing
    End If
End If

Dim st As String = e.Form.Controls("ComboBox1").Value

[此贴子已经被作者于2018/8/19 10:10:35编辑过]

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


加好友 发短信
等级:三尾狐 帖子:662 积分:5405 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2018/8/19 10:31:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:微步溯源.foxdb


就是里面有个授权窗口,想点击treeview1里面的afterchecknode事件。如果点击一级节点,把窗体combobox1的值写到授权表里,要求写到一级节点=授权表-模块列中的值的行;如果二级节点选中,写到授权表-模块-子模块对应的行?

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


加好友 发短信
等级:三尾狐 帖子:662 积分:5405 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2018/8/19 11:10:00 [显示全部帖子]

太强了“蓝哥”膜拜,我得好好看看

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


加好友 发短信
等级:三尾狐 帖子:662 积分:5405 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2018/8/19 11:21:00 [显示全部帖子]

这段代码我想实现如果“授权”表里没有登陆者的职位,他登陆后就看不到相应菜单,执行后的结果怎么不对?
如果模块列的值为PDA则不检索

Dim dr2 As DataRow = DataTables("用户信息").find("用户名 = '" & 用户名 & "'")  '找到当前登录者所在的行
For Each dr1 As DataRow In DataTables("授权").DataRows
'首先判断分组的授权用户是否包括此用户或此用户所属的分组
If dr1.IsNull("职位") = False Andalso dr1("模块")<>"PDA" Then
    Dim nms() As String = dr1("职位").Split(",")
    For Each nm As String In nms
        If nm <> dr2("职位")  Then '如果授权职位不包含登陆者职位
               If dr1.IsNull("子模块") = False Then
                  RibbonTabs(dr1("模块")).Groups(dr1("分组名")).Items(dr1("子模块")).Visible = False 
               End If
         End If
     Next
 End If
 Next
[此贴子已经被作者于2018/8/19 11:21:50编辑过]

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


加好友 发短信
等级:三尾狐 帖子:662 积分:5405 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2018/8/19 11:47:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20180819114727.png
图片点击可在新窗口打开查看
如果按钮不显示,功能组是不是也可以不显示。否则看起来难看。如果整个模块都不可用,是否一级功能组都不可见


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


加好友 发短信
等级:三尾狐 帖子:662 积分:5405 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2018/8/19 11:56:00 [显示全部帖子]

这个知识点 我知道的,但我不知道如何判断功能组里面的功能的菜单都不可用就不可见图片点击可在新窗口打开查看
有点蓝老师还得麻烦您帮我梳理下,我搞到现在也没弄出来,感谢感谢
[此贴子已经被作者于2018/8/19 13:10:56编辑过]

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


加好友 发短信
等级:三尾狐 帖子:662 积分:5405 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2018/8/19 15:07:00 [显示全部帖子]

方法1,循环这个分组所有项目,如果全部都为隐藏状态,就同时把这个分组设置为远程
老师这个有没有参考的文档
搞得头疼也没理清,感觉环套环。我出不来了
我想采用的是方法1或2。我循环不出来,思路跳不出来

[此贴子已经被作者于2018/8/19 15:21:06编辑过]

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


加好友 发短信
等级:三尾狐 帖子:662 积分:5405 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2018/8/19 16:09:00 [显示全部帖子]

版主我真尽力了,真写不出来图片点击可在新窗口打开查看

 回到顶部
总数 13 1 2 下一页