以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于权限管理 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=145661) |
|
-- 作者:lgz518 -- 发布时间:2020/2/3 21:34:00 -- 关于权限管理 附件我根据视频教程一部分,但存一些问题,请老师帮助,问题点在窗体不写,谢谢 |
|
-- 作者:有点蓝 -- 发布时间:2020/2/3 22:57:00 -- 参考
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=59745&authorid=0&page=2&star=1
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=41945&page=5
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=99766&page=5 |
|
-- 作者:lgz518 -- 发布时间:2020/2/6 19:26:00 -- 视频教程说下面实例上可视授权可以实现,表,窗体,菜单,按键事件,操作出现以下问题? 问题1:For Each dr As DataRow In DataTables("授权表").Select("用户名 = \'" & User.Name & "\' And 表名= \'" & e.Form.Name & "\'") e.Form.Controls(dr("列名")).Visible = Not dr("不可见") e.Form.Controls(dr("列名")).Enabled = Not dr("不可编辑") Next (1)可实现窗体上的按键,但控制不了窗体,比如让“生产登记”不可见或不可编辑,实现不了? (2)菜单也实现不了? 问题2:菜单事件 Select Case e.StripItem.Name Case "生产管理" Select Case e.StripItem.Text Case "生产登记" Forms("生产登记").Open() Case "生产审核" Forms("编辑窗口").Open() End Select Case "销售管理" Select Case e.StripItem.Text Case "销售查询" Forms("销售查询").Open() End Select End Select 也实现不了,打不开相应窗口事件? |
|
-- 作者:lgz518 -- 发布时间:2020/2/6 19:28:00 -- 问题3,权限约束是正表,放上窗体上的副表启到约束作用,如何解决?谢谢 |
|
-- 作者:有点蓝 -- 发布时间:2020/2/7 9:51:00 -- 问题1、 1、窗口没有什么不可见或不可编辑,只能控制里面的控件不可见或不可编辑,窗口不可见,就不要打开窗口即可 2、菜单的设置这样: e.Form.Strips("工具栏1").Items(dr("菜单名")).Visible = Not dr("不可见") e.Form.Strips("工具栏1").Items(dr("菜单名")).Enabled = Not dr("不可编辑") 问题2:
Select Case e.StripItem.Text Case "生产登记" Forms("生产登记").Open() Case "生产审核" Forms("编辑窗口").Open() Case "销售查询" Forms("销售查询").Open() End Select 问题3: 窗口表到窗口afterload处理,注意副本表的名称:http://www.foxtable.com/webhelp/topics/1906.htm |
|
-- 作者:lgz518 -- 发布时间:2020/2/7 14:32:00 -- 问题1:菜单权限 A,视频教程说实例通用,表,窗体,菜单都可以一张表,授权表;所以我为集中便管理,不再做另一张菜单; B,我是想实例中“主窗体权限”做为系统主程去控制其他,也就是直接跳过系统的菜单,不想设系统菜单和表标题的隐藏 C,所以实例根据您提供改代码,不执行 For Each dr As DataRow In DataTables("授权表").Select("用户名 = \'" & User.Name & "\' And 表名= \'" & e.Form.Name & "\'") e.Form.Strips("表名").Items(dr("列名")).Visible = Not dr("不可见") e.Form.Strips("表名").Items(dr("列名")).Enabled = Not dr("不可编辑") Next |
|
-- 作者:lgz518 -- 发布时间:2020/2/7 14:50:00 -- 问题3: 窗口表到窗口afterload处理,注意副本表的名称:http://www.foxtable.com/webhelp/topics/1906.htm 既然副本Table是独立的,所以它必须有自己的名称,这样才能和原Table区分开来,其名称为 : 窗口名称_控件名称 For Each dr As DataRow In DataTables("授权表").Select("用户名 = \'" & User.Name & "\' And 表名= \'" & e.Form.Name & "\'") e.Form.Controls(dr("列名")).Visible = Not dr("不可见") e.Form.Controls(dr("列名")).Enabled = Not dr("不可编辑") Next 上面通用代码,如表C副表权限设计,销售查询_表C,然而上面代码通用,好象不用,如销售查询_表C,不知怎么写 |
|
-- 作者:有点蓝 -- 发布时间:2020/2/7 16:23:00 -- 回6楼, a、哪个视频?如果是官方的可视化权限,以表格为主,对窗口和菜单不是不适合。 c、e.Form.Strips("这里是工具栏名称不是窗口名称").Items(这里是工具栏里其中一个项目的名称) 回7楼,如果是要控制窗口控件,是和表格没有关系 For Each dr As DataRow In DataTables("授权表").Select("用户名 = \'" & User.Name & "\' And 表名= \'" & e.Form.Name & "\'") If dr.IsNull("列名") Then Tables(dr("表名")).Visible = Not dr("不可见") Tables(dr("表名")).AllowEdit = Not dr("不可编辑") Else Tables(dr("表名")).Cols(dr("列名")).Visible = Not dr("不可见") Tables(dr("表名")).Cols(dr("列名")).AllowEdit = Not dr("不可编辑") End If Next |
|
-- 作者:lgz518 -- 发布时间:2020/2/7 20:50:00 --
|
|
-- 作者:lgz518 -- 发布时间:2020/2/7 21:27:00 -- 老师,按您8楼提供改还是不行,请您帮肋我上传的实例进行改,谢谢! 另说明:c、e.Form.Strips("这里是工具栏名称不是窗口名称").Items(这里是工具栏里其中一个项目的名称),我实例是窗口设计主菜单下菜单,没有工具栏。
|