Foxtable(狐表)用户栏目专家坐堂 → 自定义权限管理后关联表显示不出来?已解决!!


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

主题:自定义权限管理后关联表显示不出来?已解决!!

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8521 威望:0 精华:0 注册:2012/2/9 16:35:00
自定义权限管理后关联表显示不出来?已解决!!  发帖心情 Post By:2012/10/7 23:50:00 [只看该作者]

各位老师,

 如下图,


图片点击可在新窗口打开查看此主题相关图片如下:360截图20121006-003.jpg
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:360截图20121006-004.jpg
图片点击可在新窗口打开查看

自定义管理权限,在项目的afteropenProject中用了如下代码:

 '让所有表及列均不可见及不可编辑.
    For Each t As Table In Tables
        t.Visible = False
        t.AllowEdit = False
        For Each c As Col In t.Cols
            c.Visible = False
            c.AllowEdit =  False
        Next
    Next

然后在用户登陆窗口中设计了不同用户的查看和编辑权限的代码,动态加载也在主表的afterload中用了加载关联表数据的代码如下:
Select Case e.DataTable.Name
    Case "订单"
        If DataTables("订单").DataRows.Count = 0 Then '如果订单表没有数据
            DataTables("订单明细").LoadFilter = "订单编号 Is Null" '不加载订单明细
        Else
            Dim ids As String
            For Each dr As DataRow In DataTables("订单").DataRows
                ids = ids & ",'" & dr("订单编号") & "'"
            Next
            ids= ids.Trim(",")
            DataTables("订单明细").LoadFilter = "订单编号 In (" & ids & ")"
        End If
        DataTables("订单明细").Load()
  

主表和子表的数据都可以按权限正确显示,但关联表却显示不出来,请问是什么原因?

 

谢谢!

 

[此贴子已经被作者于2012-10-8 18:04:36编辑过]

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2012/10/8 7:34:00 [只看该作者]

貌似你的列给隐藏了。

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/10/8 9:01:00 [只看该作者]

 如楼上所说,你应该是隐藏了关联表的列。

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8521 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2012/10/8 13:20:00 [只看该作者]

谢谢两位老师,不是我隐藏了,而是项目事件中的这个代码打开时造成的,

 

在项目的afteropenProject中用了如下代码:

 '让所有表及列均不可见及不可编辑.
    For Each t As Table In Tables
        t.Visible = False
        t.AllowEdit = False
        For Each c As Col In t.Cols
            c.Visible = False
            c.AllowEdit =  False
        Next
    Next

 

但我在用户登陆的代码中又根据权限表让其可查看及编辑如下:

 

Dim drs As List(Of DataRow)
        drs = DataTables("授权表").Select("[部门] = '" & MyGroup & "' And 角色 in (" & R & ")")
        If drs.count < 1 Then
            MessageBox.Show("你还没有被授权,不能查看及编辑任何数据,请联系管理员授权!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
            e.Form.Close()
            Syscmd.Project.Exit()
        Else
            e.Form.Close()
            For Each dr1 As DataRow In drs
                If dr1.IsNull("可查看列") = False Then
                    Tables(dr1("表名")).Visible = True
                End If
                If dr1.IsNull("可编辑列") = False Then
                    Tables(dr1("表名")).AllowEdit = True
                End If
                For Each tb As Table In Tables
                    If tb.name = dr1("表名") Then
                        For Each c As Col In tb.Cols
                            Dim a As String = c.name
                            If dr1("可查看列").contains(a) Then
                                c.Visible = True
                            End If
                            If dr1("可编辑列").contains(a) Then
                                c.AllowEdit = True
                            End If
                        Next
                    End If
                Next
            Next
            '设置导航
            Forms("导航").Open()
            '设置权限
        End If


 

而且登陆后“订单”及“订单明细”都有显示正确的数据,只是这个订单主表下面的关联表(订单.订单明细)却没有?


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2012/10/8 13:52:00 [只看该作者]

你把权限表截图看看.

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8521 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2012/10/8 14:51:00 [只看该作者]

下面是授权表中的截图,以前的那些截图中我以生产部经理登陆时弄的。

 


图片点击可在新窗口打开查看此主题相关图片如下:360截图20121008-005.jpg
图片点击可在新窗口打开查看

 


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/10/8 15:33:00 [只看该作者]

 订单.订单明细 也是一个Table,这个表的列没有被显示出来。

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8521 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2012/10/8 18:04:00 [只看该作者]

谢谢lin_hailun,blackzhu,

原来订单.订单明细这样的关联表也要在授权表中授权,原以为只是主表和子表授权就可以,解决了。


 回到顶部