Foxtable(狐表)用户栏目专家坐堂 → 窗口关联表权限问题


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

主题:窗口关联表权限问题

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


加好友 发短信
等级:三尾狐 帖子:790 积分:5695 威望:0 精华:0 注册:2009/4/17 18:42:00
窗口关联表权限问题  发帖心情 Post By:2009/12/17 14:42:00 [显示全部帖子]

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

针对窗口1要求:
1.用户组“管理员”,“部门主管”无编辑权限限制。其余用户组表A全部、表B“图号”,“名称”,“订单号”,“工序班组"列禁止编辑.
2.用户组“1组”权限。表A“工序班组”列=‘A’时,表A.表B可新增行;表A.表B当前行“班组"='A'时,可编辑其余列。
2.用户组“2组”权限。表A“工序班组”列=‘B’时,表A.表B可新增行;表A.表B当前行“班组"='B'时,可编辑其余列。
2.用户组“3组”权限。表A“工序班组”列=‘C’时,表A.表B可新增行;表A.表B当前行“班组"='C'时,可编辑其余列。
2.用户组“4组”权限。表A“工序班组”列=‘D’时,表A.表B可新增行;表A.表B当前行“班组"='D'时,可编辑其余列。
[此贴子已经被作者于2009-12-17 14:44:09编辑过]

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


加好友 发短信
等级:三尾狐 帖子:790 积分:5695 威望:0 精华:0 注册:2009/4/17 18:42:00
  发帖心情 Post By:2009/12/17 21:37:00 [显示全部帖子]

搞定一个,多谢C版提供:
Select Case User.Group
    Case "管理员","部门主管"
        DataTables("表A").AllowEdit = true
        DataTables("表B").DataCols("图号").AllowEdit = true
        DataTables("表B").DataCols("名称").AllowEdit = true
        DataTables("表B").DataCols("订单号").AllowEdit = true
        DataTables("表B").DataCols("工序班组").AllowEdit = true
    Case Else
        DataTables("表A").AllowEdit = False
        DataTables("表B").DataCols("图号").AllowEdit = False
        DataTables("表B").DataCols("名称").AllowEdit = False
        DataTables("表B").DataCols("订单号").AllowEdit = False
        DataTables("表B").DataCols("工序班组").AllowEdit = False
End Select
下一步请帮帮忙:
.用户组“1组”权限。表A“工序班组”列=‘A’时,关联表“表A.表B”可新增行;关联表“表A.表B”当前行“班组"='A'时,可编辑其余列。

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


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


加好友 发短信
等级:三尾狐 帖子:790 积分:5695 威望:0 精华:0 注册:2009/4/17 18:42:00
  发帖心情 Post By:2009/12/18 0:32:00 [显示全部帖子]

新增行已经搞定,多谢C版的葫芦,经我修改,现达到我的意图了:
Dim r1 As Row = Tables("表A").Current
Dim r2 As Row = Tables("表B").Current
Select Case User.Group
    Case "1组"
        DataTables("表B").AllowAddNew  = r1("工序班组") = "A"
        '允许编辑指定列代码,下一行代码只是示例
        DataTables("表B").DataCols("第五列") .AllowEdit = r2("工序班组") = "A"
    Case "2组"
        DataTables("表B").AllowAddNew  = r1("工序班组") = "B"
        '允许编辑指定列代码,下一行代码只是示例
        DataTables("表B").DataCols("第五列").AllowEdit = r2("工序班组") = "B"
       
        '其它分组代码可参照上面
End Select
现问题是允许编辑列不对,及红色代码,现在不能正常,表B第五列始终不能编辑,而且我的项目是要n列允许编辑,比如示范的第五列,第六列,代码应该怎么写。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目8.table

[此贴子已经被作者于2009-12-18 0:32:54编辑过]

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


加好友 发短信
等级:三尾狐 帖子:790 积分:5695 威望:0 精华:0 注册:2009/4/17 18:42:00
  发帖心情 Post By:2009/12/18 0:46:00 [显示全部帖子]

红色部分能不能用行锁定代码来写,DataTables("表B") 解除行锁定代码= r2("工序班组") = "B"

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


加好友 发短信
等级:三尾狐 帖子:790 积分:5695 威望:0 精华:0 注册:2009/4/17 18:42:00
  发帖心情 Post By:2009/12/18 1:22:00 [显示全部帖子]

我把红色部分删除,在表属性PrepareEdit事件中加代码:
If e.Row("工序班组") = "A" AndAlso User.Group <> "1组"  and User.Group <> "管理员" and User.Group <> "部门主管" Then
    e.Cancel = True
End If
If e.Row("工序班组") = "B" AndAlso User.Group <> "2组" and User.Group <> "管理员" and User.Group <> "部门主管" Then
    e.Cancel = True
End If
If e.Row("工序班组") = "C" AndAlso User.Group <> "3组" and User.Group <> "管理员" and User.Group <> "部门主管" Then
    e.Cancel = True
End If
If e.Row("工序班组") = "D" AndAlso User.Group <> "4组" and User.Group <> "管理员" and User.Group <> "部门主管" Then
    e.Cancel = True
End If

经测试合格。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目8.table

[此贴子已经被作者于2009-12-18 1:22:42编辑过]

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


加好友 发短信
等级:三尾狐 帖子:790 积分:5695 威望:0 精华:0 注册:2009/4/17 18:42:00
  发帖心情 Post By:2009/12/18 2:23:00 [显示全部帖子]

经修改,现已全部符合最初想法,谢谢C版指导
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目8.table


 回到顶部