让不同用户处理不同的表

通过一些简单的代码,我们可以让不同的人编辑或查看不同的表,也可以为不同的用户加载不同的表。

1、让不同用户编辑不同的表

例如在表A的PrepareEdit设置代码:

Select Case User.Name
    Case
"张三","李四"
        e.Cancel =
True
End Select

即可禁止张三和李四编辑表A。

2、让不同用户查看不同的表

例如在项目事件AfteOpenProject事件中设置代码:

Select Case User.Name
   
Case "张三","李四"
       
Tables("表A").Visible = False
    Case
"王五"
       
Tables("表B").Visible = False
End
Select

即可使得张三或李四打开项目后,将看不到表A,王五打开项目后,将看不到表B,不过这些表仍然可以通过代码使用。

3、为不同用户加载不同的表

BeforeLoadInnerTableBeforeLoadOuterTable事件都有一个Cancel属性,将此属性设置为True,将不加载对应的表。

例如在BeforeLoadInnerTable(内部表)或BeforeLoadOuterTable(外部表)中设置代码:

Select Case e.DataTableName
   
Case "表A"
        e.Cancel = (e.User.Name =
"张三")
   
Case "表B"
        e.Cancel = (e.User.Name =
"李四")
   
Case "表C"
        e.Cancel = (e.User.Name =
"王五")
End
Select

这样张三打开项目,将不会加载表A,需要注意的是,如果打开项目后,有代码引用表A,将会出错,因为此时表A是不存在的。
同样李四打开项目不会加载表B,王五打开项目不会加载表C。
 

 

 

 

 

   


本页地址:http://www.foxtable.com/webhelp/topics/2267.htm