以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  可否将不加载表的条件写到AfterOpenProject事件中?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=55252)

--  作者:wh420
--  发布时间:2014/8/13 10:56:00
--  可否将不加载表的条件写到AfterOpenProject事件中?
可否将BeforeLoadOuterTable事件中的以下代码写入到AfterOpenProject事件中?如何写?
Select Case e.DataTableName
Case "表A"
e.Cancel = (_UserGroup =
"客服经理")

End
Select

因为_UserGroup的全局变量是通过登录窗口才有值的放到BeforeLoadOuterTable事件中,登录窗口还没有赋上值给_UserGroup
[此贴子已经被作者于2014-8-13 11:03:19编辑过]

--  作者:wh420
--  发布时间:2014/8/13 10:57:00
--  
我的权限是通过全局代码设置的,Public _UserGroup As String     如果_UserGroup="客服经理“  则不准访问表A
--  作者:wh420
--  发布时间:2014/8/13 11:49:00
--  
不知道我说明白没有
--  作者:Bin
--  发布时间:2014/8/13 11:56:00
--  
表不加载,采取动态加载的方式
登陆后再根据 _UserGroup加载

参考帮助动态加载章节


--  作者:有点甜
--  发布时间:2014/8/13 12:03:00
--  
以下是引用wh420在2014-8-13 11:49:00的发言:
不知道我说明白没有

 

1、开始的时候,不要加载任何数据表;

 

2、在AfterOpenProject里面,判断_UserGroup去对应的加载对应的表,比如

 

 DataTables.Load("表A")

 DataTables.Load("表B")


--  作者:wh420
--  发布时间:2014/8/13 12:13:00
--  
明白了,多谢两位老师。
--  作者:wh420
--  发布时间:2014/8/13 16:43:00
--  
追问:我有很多表,在AfterOpenProject里面,我用_UserGroup做了判断,如果_UserGroup="经理" 全部加载,如果_UserGroup="项目经理" 那么加载表A、表B、表C、表D.
用e.Cancel = True如何写?

--  作者:有点甜
--  发布时间:2014/8/13 16:50:00
--  
If _UserGroup = "经理" Then
    For Each tn As String In Connections("数据源名").GetTableNames
        DataTables.Load(tn)
    Next
Else If _UserGroup="项目经理" Then
    DataTables.Load("表A")
    DataTables.Load("表B")
    DataTables.Load("表C")
End If

 


--  作者:wh420
--  发布时间:2014/8/13 16:56:00
--  
明白了,那如何开始不加载任何表应在BeforeLoadOuterTable如何设置?


--  作者:Bin
--  发布时间:2014/8/13 16:59:00
--  
http://www.foxtable.com/help/topics/2752.htm