Foxtable(狐表)用户栏目专家坐堂 → 为不同的用户加载不同的表


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

主题:为不同的用户加载不同的表

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
为不同的用户加载不同的表  发帖心情 Post By:2011/4/22 18:10:00 [显示全部帖子]

BeforeLoadInnerTable和BeforeLoadOuterTable事件都有一个未曾介绍的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。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/22 18:56:00 [显示全部帖子]

呵呵,这是项目事件,建议你抽时间系统看看帮助。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/23 9:40:00 [显示全部帖子]

If e.DataTableName = "订单"
    e.Filter = "[业务员] = '" & e.User.Name & "' And 日期 = #" & Date.Today & "#"
End If

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/23 10:06:00 [显示全部帖子]

以下是引用liuxing73151在2011-4-23 9:57:00的发言:

 

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

 

按照你上面的代码,张三、李四、王五,我设了多个表不加载的表,如果用张三进去,只显示表B表C,但如果用李四、王五进去,几个表会全部显示,不知道什么回事?

 

建议你看看这一节的内容:

http://help.foxtable.com/topics/2242.htm

虽然讲的是计算的问题,但是道理一样

 

 


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/23 10:23:00 [显示全部帖子]

是的

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/23 10:47:00 [显示全部帖子]

不能用AndAlso,一个表的名称,怎么可能同时等于表a和财务部,只能是表a或者财务部,用OrElse:

 

If e.DataTableName = "表a" OrElse e.User.Name = "财务部" Then
   e.Filter = "[日期] = #" & Date.Today & "#"
End If


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/23 12:54:00 [显示全部帖子]

搞不定就传文件上来,具体说明任务目的、在哪里设置了什么代码、遇到了什么问题。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/4/23 15:18:00 [显示全部帖子]

呵呵,不好意思,是我看错了。

 回到顶部