Foxtable(狐表)用户栏目专家坐堂 → [求助]能否通过表格+代码(在表格中输入加载条件)动态实现加载管理-已解决


  共有2504人关注过本帖平板打印复制链接

主题:[求助]能否通过表格+代码(在表格中输入加载条件)动态实现加载管理-已解决

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


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
[求助]能否通过表格+代码(在表格中输入加载条件)动态实现加载管理-已解决  发帖心情 Post By:2018/5/29 9:08:00 [只看该作者]

表和列的权限管理(简称权限管理)和菜单按钮的权限管理(简称菜单管理)可以通过表格+代码的形式,实现动态管理,权限明了、代码简单,修改权限也无需重新修改代码、发布项目,用户也无需升级系统,非常高效。
那么,所有表的加载条件(即根据不同的角色加载不同的行),是否也可以通过表格+代码的形式,实现动态管理?
现在AfterOpenProject的代码如下:
With DataTables("项目管理")
    Select Case _userroles
        Case "一般人员"
            .loadFilter = "[项目经理] = '" & _username & "'or [借款人] = '" & _username & "'"
        Case "部门干事","部门领导","体系管理"
            .LoadFilter = "[部门名称] In (" & _usergroup & ")"
        Case "部门会计"
            .LoadFilter = "会计核算部门 In (" & _usergroup & ") Or 部门名称 In (" & _usergroup & ")"
        Case "财务领导","生产领导","公司领导","合同管理","产值管理","开发者","管理者"
            .LoadFilter = ""
        Case "审核人员","担保管理","物业管理"
            .loadFilter = "[_Identify] Is null"
    End Select
End With
若想增加“加载管理”表(有序号、表名、角色、加载条件4列),实现动态管理,用下列代码:
Dim drs As List (of DataRow)
Dim dr As DataRow
Dim role As String = "'%" & _userroles & "%'"
Dim code As String
drs = DataTables("加载管理").SQLSelect("角色名称 like " & role,"","序号")
For Each dr In drs
    functions.remove("loadstr") '必须先删除
    code = "dim str As String =" & dr("加载条件") & vbcrlf
    code = code & "return str"
    functions.add("loadstr",code)
    functions.complie()
    DataTables(dr("表名")).LoadFilter = functions.execute("loadstr")
Next
[此贴子已经被作者于2018/5/29 15:38:43编辑过]

 回到顶部