以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  记录窗口隐藏问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=141606)

--  作者:15666282205
--  发布时间:2019/10/6 20:00:00
--  记录窗口隐藏问题
各位老师,遇到了一个问题:表A设置了目录树,也设置了记录窗口,用授权表设置为职员不可见,实际运行时,主表职员看不到,目录树能看到,点击目录树的时候记录窗口能看到表的内容。怎样解决这个问题呢?
--  作者:有点蓝
--  发布时间:2019/10/6 20:17:00
--  
方法1、筛选树记录窗口不要设置为自动打开,根据权限调用代码打开:http://www.foxtable.com/webhelp/topics/2020.htmhttp://www.foxtable.com/webhelp/topics/2203.htm

2、没有权限的,把筛选树记录窗口同时关闭
比如

Tables("授权表").Visible = (User.Type <> UserTypeEnum.User )
If
 User.Type = UserTypeEnum.User Then
    For Each dr As DataRow In DataTables("授权表").Select("用户名 = \'" & User.Name & "\'" )
        If
 dr.IsNull("列名"
Then
        
    Tables(dr("表名")).Visible = Not dr("不可见")
if dr("不可见") then
    Tables(dr("表名")).CloseFilterTree
    Tables(dr("表名")).CloseRecordGrid
end if
            Tables(dr("表名")).AllowEdit = Not dr("不可编辑")

        Else
            
Tables(dr("表名")).Cols(dr("列名")).Visible = Not dr("不可见")
            Tables
(dr("表名")).Cols(dr("列名")).AllowEdit = Not dr("不可编辑"
        End
 
If
    Next
End
 
If

--  作者:15666282205
--  发布时间:2019/10/6 21:26:00
--  
\'-------------------授权-------------------------------
\'For Each c As object In e.form.controls
\'If typeof c Is winform.Table Then
\'Dim name As String = c.Table.DataTable.name
\'Dim fdr As DataRow = DataTables("授权表").find("分组名 = \'" & User.Group & "\' and 表名 = \'" & name & "\' and 列名 is null")
\'If fdr IsNot Nothing Then
\'c.visible = not fdr("不可见")
\'c.Table.AllowEdit = not fdr("不可编辑")
\'End If
\'End If
\'Next
以上是我有问题的编码,换了您的编码并修改了一下,但是不正常。请您看看,在我的编码基础上改改好吗?

--  作者:有点蓝
--  发布时间:2019/10/6 21:40:00
--  
自己设置的目录树控件?不是系统的筛选树?

这种把目录树控件也当做一种权限,添加到授权表里。

或者利用控件名称,比如表格控件名称:table1,目录树控件名称为:treeview_table1
If fdr IsNot Nothing Then
    c.visible = not fdr("不可见")
    If e.form.ExistControl("treeview_" & c.name) Then
        e.form.controls("treeview_" & c.name).visible = c.visible 
    End If
    c.Table.AllowEdit = not fdr("不可编辑")
End If


--  作者:15666282205
--  发布时间:2019/10/7 8:19:00
--  
老师,您的代码没看明白,我设计的界面您看看。把目录树控件也当做一种权限,添加到授权表里,怎样操作?我试了,加到授权表里提示错误。

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


--  作者:15666282205
--  发布时间:2019/10/7 8:21:00
--  
按我设计的授权运行时,禁止看的人看不到中间的表,但是左边的目录树和右边的记录窗口可以正常看
--  作者:有点蓝
--  发布时间:2019/10/7 8:40:00
--  
这种还不如直接把人员信息页签隐藏算了。

具体上传实例说明

--  作者:15666282205
--  发布时间:2019/10/7 9:43:00
--  
老师,用的外部数据源,需要把数据源一块上传吗?


--  作者:有点蓝
--  发布时间:2019/10/7 9:54:00
--  
可以转为内部表和access数据库上传上来
--  作者:15666282205
--  发布时间:2019/10/7 10:20:00
--  
老师,您看看实例