Foxtable(狐表)用户栏目专家坐堂 → 求助


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

主题:求助

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


加好友 发短信
等级:婴狐 帖子:64 积分:538 威望:0 精华:0 注册:2017/6/4 12:55:00
求助  发帖心情 Post By:2017/6/7 20:04:00 [只看该作者]

For Each t As Table In Tables '显示所有表和列
    t.Visible = True
    t.AllowEdit = True
    For Each c As Col In t.Cols
        c.Visible = True
        c.AllowEdit = True
    Next
Next
Tables("授权表").Visible = (User.Type <> UserTypeEnum.User )
If  User.Type <> UserTypeEnum.User Then
    Return
End If
For Each dr As DataRow In DataTables("授权表").Select("用户名 = '" & User.Name & "'" )
    If dr.IsNull("列名") Then
        For Each t As Table In Tables
            If t.DataTable.Name = dr("表名") Then
                t.Visible = Not dr("不可见")
                t.AllowEdit = Not dr("不可编辑")
            End If
        Next
    Else
        For Each t As Table In Tables
            If t.DataTable.Name = dr("表名") Then
                For Each c As Col In t.Cols
                    If c.Name = dr("列名") Then
                        c.Visible = Not dr("不可见")
                        c.AllowEdit = Not dr("不可编辑")
                    End If
                Next
            End If
        Next
    End If
Next



这里选“不可见”时只是针对某表中的某列,    如何实现:选择“表名+不可见”时整个表都看不见         选择“表名+列名+不可见”时就这一列看不见

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/7 20:13:00 [只看该作者]

 改代码

 

For Each t As Table In Tables
    t.Visible = True
    t.AllowEdit = True
    For Each c As Col In t.Cols
        c.Visible = True
        c.AllowEdit = True
    Next
Next
Tables("授权表").Visible = (User.Type <> UserTypeEnum.User )
If User.Type = UserTypeEnum.User Then
    For Each dr As DataRow In DataTables("授权表").Select("分组名 = '" & User.Group & "'" )
        If Tables.Contains(dr("表名")) Then
            If dr.IsNull("列名") Then
                Tables(dr("表名")).Visible = Not dr("不可见")
                Tables(dr("表名")).AllowEdit = Not dr("不可编辑")
            Else
                If  Tables(dr("表名")).Cols.Contains(dr("列名")) Then
                    Tables(dr("表名")).Cols(dr("列名")).Visible = Not dr("不可见")
                    Tables(dr("表名")).Cols(dr("列名")).AllowEdit = Not dr("不可编辑")
                End If
            End If
        End If
    Next
End If

 


 回到顶部
帅哥哟,离线,有人找我吗?
等待
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:64 积分:538 威望:0 精华:0 注册:2017/6/4 12:55:00
  发帖心情 Post By:2017/6/7 20:31:00 [只看该作者]

.NET Framework 版本:2.0.50727.4984
Foxtable 版本:2017.6.8.1
错误所在事件:项目,LoadUserSetting
详细错误信息:
未找到列 [分组名]。




重新打开项目时出现的提示

 回到顶部
帅哥哟,离线,有人找我吗?
等待
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:64 积分:538 威望:0 精华:0 注册:2017/6/4 12:55:00
  发帖心情 Post By:2017/6/7 20:33:00 [只看该作者]

If e.Col.Name = "列名" Then
    Dim s As String = e.Row("表名")
    If s > "" AndAlso Tables.Contains(s) Then
        Dim t As Table = Tables(s)
        s = ""
        For Each c As Col In t.Cols
            s = s & "|" & c.Name
        Next
        e.Col.ComboList = s
    End If
End If

是不是这个代码也要改

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/7 20:37:00 [只看该作者]

 2楼的代码,要改成适合你表格的。

 

For Each dr As DataRow In DataTables("授权表").Select("分组名 = '" & User.Group & "'" )

 

 不会做上传具体实例


 回到顶部
帅哥哟,离线,有人找我吗?
等待
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:64 积分:538 威望:0 精华:0 注册:2017/6/4 12:55:00
  发帖心情 Post By:2017/6/7 21:09:00 [只看该作者]

上传实例 添加不了附件

 回到顶部
帅哥哟,离线,有人找我吗?
等待
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:64 积分:538 威望:0 精华:0 注册:2017/6/4 12:55:00
  发帖心情 Post By:2017/6/7 21:17:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb


 回到顶部
帅哥哟,离线,有人找我吗?
等待
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:64 积分:538 威望:0 精华:0 注册:2017/6/4 12:55:00
  发帖心情 Post By:2017/6/7 21:29:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2017/6/8 8:24:00 [只看该作者]

你8楼的代码并没有问题啊

 回到顶部
帅哥哟,离线,有人找我吗?
等待
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:64 积分:538 威望:0 精华:0 注册:2017/6/4 12:55:00
  发帖心情 Post By:2017/6/8 8:27:00 [只看该作者]

For Each t As Table In Tables '显示所有表和列
    t.Visible = True
    t.AllowEdit = True
    For Each c As Col In t.Cols
        c.Visible = True
        c.AllowEdit = True
    Next
Next
Tables("授权表").Visible = (User.Type <> UserTypeEnum.User )
If  User.Type <> UserTypeEnum.User Then
    Return
End If
For Each dr As DataRow In DataTables("授权表").Select("用户名 = '" & User.Name & "'" )
    If dr.IsNull("列名") Then
        For Each t As Table In Tables
            If t.DataTable.Name = dr("表名") Then
                t.Visible = Not dr("不可见")
                t.AllowEdit = Not dr("不可编辑")
            End If
        Next
    Else
        For Each t As Table In Tables
            If t.DataTable.Name = dr("表名") Then
                For Each c As Col In t.Cols
                    If c.Name = dr("列名") Then
                        c.Visible = Not dr("不可见")
                        c.AllowEdit = Not dr("不可编辑")
                    End If
                Next
            End If
        Next
    End If
Next



这里选“不可见”时只是针对某表中的某列,    如何实现:选择“表名+不可见”但不选列名时整个表都看不见         选择“表名+列名+不可见”时就这一列看不见


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