以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 为不同的用户加载不同的表 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=9560) |
-- 作者:狐狸爸爸 -- 发布时间:2011/4/22 18:10:00 -- 为不同的用户加载不同的表 BeforeLoadInnerTable和BeforeLoadOuterTable事件都有一个未曾介绍的Cancel属性,将此属性设置为True,将不加载对应的表。
Select Case e.DataTableNameCase "表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。 |
-- 作者:liuxing73151 -- 发布时间:2011/4/22 18:55:00 -- 晕,我找不到这个事件在哪里呀,介绍详细点,表属性列属性,窗口属性我什么都没有看到 |
-- 作者:狐狸爸爸 -- 发布时间:2011/4/22 18:56:00 -- 呵呵,这是项目事件,建议你抽时间系统看看帮助。 |
-- 作者:liuxing73151 -- 发布时间:2011/4/22 19:13:00 -- 找到了,你能不能写个每个用户只能加载相对应的表,这样子不是更好,要不然有的人家里面表表那么多,只限制一个或者多个好像比加载相对应表要麻烦~! |
-- 作者:liuxing73151 -- 发布时间:2011/4/22 19:23:00 -- If e.DataTableName = "订单"e.Filter = "[业务员] = \'" & e.User.Name & "\'" End If
我有三四个用户,针对不同的的表,然后进去只显示今天的表格,要什么都写进去呢 |
-- 作者:blackzhu -- 发布时间:2011/4/23 8:25:00 -- 表如果有日期列,加上一个日期列的条件 |
-- 作者:狐狸爸爸 -- 发布时间:2011/4/23 9:40:00 -- If e.DataTableName = "订单" e.Filter = "[业务员] = \'" & e.User.Name & "\' And 日期 = #" & Date.Today & "#" End If |
-- 作者:liuxing73151 -- 发布时间:2011/4/23 9:57:00 --
Select Case e.DataTableName
按照你上面的代码,张三、李四、王五,我设了多个表不加载的表,如果用张三进去,只显示表B表C,但如果用李四、王五进去,几个表会全部显示,不知道什么回事? |
-- 作者:狐狸爸爸 -- 发布时间:2011/4/23 10:06:00 -- 以下是引用liuxing73151在2011-4-23 9:57:00的发言:
Select Case e.DataTableName
按照你上面的代码,张三、李四、王五,我设了多个表不加载的表,如果用张三进去,只显示表B表C,但如果用李四、王五进去,几个表会全部显示,不知道什么回事?
建议你看看这一节的内容: http://help.foxtable.com/topics/2242.htm 虽然讲的是计算的问题,但是道理一样
|
-- 作者:程兴刚 -- 发布时间:2011/4/23 10:17:00 -- 以下是引用狐狸爸爸在2011-4-22 18:10:00的发言:
BeforeLoadInnerTable和BeforeLoadOuterTable事件都有一个未曾介绍的Cancel属性,将此属性设置为True,将不加载对应的表。
Select Case e.DataTableNameCase "表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。
举一反三,好像所有的逻辑值参数都可以这样类似的使用!对吗? |