以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  权限,还是权限的请教  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=78939)

--  作者:douglas738888
--  发布时间:2015/12/21 10:50:00
--  权限,还是权限的请教
大红袍老师,又麻烦你了,根据您指导的思路,我折腾了两天还是没有达到效果,逻辑总是混淆

以下代码,把窗口内的所有控件都隐藏了

我一直想实现在授权表中填入表名后勾选不可见或不可编辑,仅仅看不到TabControl里的表或表不可编辑,但是需要保留窗口内的TabControl控件和其他控件可见,因为我设计的TabControl控件作为主页的重要组成部分,里面包含有多个页面,只让某个页面下的表不可见,其他页面能正常使用。


Dim dt As DataTable = DataTables("授权表")
For Each dr As DataRow In dt.Select("表名 = \'工资\' and 分组名 = \'" & _UserGroup & "\' and 窗口 is null")
    If dr("不可见") Then
    For Each ctl As object In e.Form.Controls
        ctl.Visible = False                                   老师指导的代码是e.Form.Close   
        Next
    ElseIf dr("不可编辑") Then
        For Each c As object In e.Form.Controls
            c.Visible = False
        Next
    End If
Next

--  作者:大红袍
--  发布时间:2015/12/21 11:19:00
--  
Dim dt As DataTable = DataTables("授权表")
For Each dr As DataRow In dt.Select("分组名 = \'" & _UserGroup & "\' and 窗口 is null")
    If Tables.Contains(dr("表名"))
        If dr("不可见") Then
            Tables(dr("表名")).Visible = False
        ElseIf dr("不可编辑") Then
            Tables(dr("表名")).AllowEdit = False
        End If
    End If
Next

 


--  作者:douglas738888
--  发布时间:2015/12/21 11:50:00
--  
老师,还是不能控制,还得请老师再看看我的测试件
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.zip

代码我也放在了主页窗口的AFTERLOAD里面


[此贴子已经被作者于2015/12/21 11:51:53编辑过]

--  作者:大红袍
--  发布时间:2015/12/21 12:03:00
--  

Dim dt As DataTable = DataTables("授权表")
For Each dr As DataRow In dt.Select("分组名 = \'" & _UserGroup & "\' and 窗口 is null")
    For Each ctl As object In e.Form.Controls
        If typeof ctl Is winform.Table
            If ctl.Table.DataTable.name = dr("表名") Then
                If dr("不可见") Then
                    ctl.Visible = False                                  
                ElseIf dr("不可编辑") Then
                    ctl.Table.AllowEdit = False
                End If
                Exit For
            End If
        End If
    Next
Next