Foxtable(狐表)用户栏目专家坐堂 → 权限


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

主题:权限

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107880 积分:548763 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/25 14:27:00 [显示全部帖子]

e.Form.Name是窗口名称

dr("权限日期天数")什么插入   messagebox.show("不能选择大于今天和小于 dr("权限日期天数") 的日期")   -- 没看懂,截图说明一下

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107880 积分:548763 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/25 16:32:00 [显示全部帖子]

窗口多个控件,要指定哪个控件?

messagebox.show("不能选择大于今天和小于" & dr("权限日期天数") & "天的日期")

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107880 积分:548763 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/25 17:32:00 [显示全部帖子]

没看懂,截图说明,或者上传实例

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107880 积分:548763 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/26 8:54:00 [显示全部帖子]

比如
For Each dr  As DataRow In DataTables("窗口权限").sqlSelect(" ','+角色用户+',' like '%," & _userGroup & ",%'  And  窗口名 = '" & e.Form.Name & "' and 控件名='开始日期' " )
[此贴子已经被作者于2021/6/26 8:54:40编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107880 积分:548763 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/26 10:51:00 [显示全部帖子]

怎么个自动法?神仙才知道要指定哪个控件。详细说明一下要做的功能

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107880 积分:548763 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/26 11:36:00 [显示全部帖子]

方法1、遍历所有控件获取名称:http://www.foxtable.com/webhelp/topics/1849.htm
For Each c As WinForm.Control In e.Form.Controls
  
For Each dr  As DataRow In DataTables("窗口权限").sqlSelect(" ','+角色用户+',' like '%," & _userGroup & ",%'  And  窗口名 = '" & e.Form.Name & "' and 控件名='" & c.name & "' " )
……
Next

2、获取表格这个窗口对应的所有行,逐个判断窗口是否存在这个控件:http://www.foxtable.com/webhelp/topics/1409.htm

For Each dr  As DataRow In DataTables("窗口权限").sqlSelect(" ','+角色用户+',' like '%," & _userGroup & ",%'  And  窗口名 = '" & e.Form.Name & "'" )
if e.form.ExistControl(dr("控件名")) then
……


 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107880 积分:548763 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/26 14:57:00 [显示全部帖子]

改为第二种用法,如果数据多,控件多,卡是正常的

如果不想提示多次,第一次提示后就退出

    If e.Sender.Value < Date.Today.AddDays(dr("权限日期天数")) OrElse e.Sender.Value > Date.Today Then
        messagebox.show("不能选择大于今天和小于" & dr("权限日期天数") & "天的日期")
        e.Cancel=True
return
……
[此贴子已经被作者于2021/6/26 14:57:16编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107880 积分:548763 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/26 17:18:00 [显示全部帖子]

本表指当前选中的表?

For Each dr  As DataRow In DataTables("表权限").sqlSelect(" ','+角色用户+',' like '%," & user.Roles & ",%'  And  表名 = '" & currenttable.name & "' ")

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107880 积分:548763 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/27 20:14:00 [显示全部帖子]

不起作用只能说是权限设置不正确,调试看看

        For Each t As Table In Tables
msgbox(dr("表名"))
            If t.DataTable.Name = dr("表名") Then
msgbox(1)
                For Each c As Col In t.Cols
msgbox(c.Name)
                    If c.Name = dr("列名") Then
msgbox(dr("权限表不可编缉"))
                        c.Visible = Not dr("权限表不可见")
                        c.AllowEdit = Not dr("权限表不可编缉")
msgbox(c.AllowEdit)
                    End If

                Next
            End If
        Next
End If
Next

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107880 积分:548763 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/28 9:20:00 [显示全部帖子]

放到用户登录窗口的确定按钮,验证登录之后

……
If e.Form.Controls("PassWord").Value = dr("Password"Then
    _UserName = UserName
    _UserGroup = dr("Group")
权限控制代码放这里
    
e.Form.Close
Else

    Messagebox.show("密码错误!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)

End
 If

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