Foxtable(狐表)用户栏目专家坐堂 → 按列内容筛选加载,代码怎么弄?


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

主题:按列内容筛选加载,代码怎么弄?

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


加好友 发短信
等级:四尾狐 帖子:867 积分:6210 威望:0 精华:0 注册:2012/11/24 20:44:00
按列内容筛选加载,代码怎么弄?  发帖心情 Post By:2013/4/3 12:06:00 [只看该作者]

假设所有数据表都有一列“分公司”的列名,登录用户名都是各个分公司的

如果按登录用户所属分公司进行加载,加载条件是不是这样的写的:

if dt.cols(“分公司”)=User.group  Then   '如果用户所属分公司=数据表的分公司列

                    (这句怎么写)     ‘加载用户所在的分公司数据表

如下图:

图片点击可在新窗口打开查看此主题相关图片如下:分公司.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:四尾狐 帖子:867 积分:6210 威望:0 精华:0 注册:2012/11/24 20:44:00
  发帖心情 Post By:2013/4/3 12:07:00 [只看该作者]

还有,总公司 的人员则可以看到所有分公司的数据(即加载所有数据),这个如何设置?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/3 12:08:00 [只看该作者]

表.Filter="分公司=User.group"

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


加好友 发短信
等级:六尾狐 帖子:1418 积分:7167 威望:0 精华:0 注册:2013/3/18 8:37:00
  发帖心情 Post By:2013/4/3 12:09:00 [只看该作者]

http://www.foxtable.com/help/topics/1473.htm

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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/4/3 12:09:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/3 12:11:00 [只看该作者]

要注意单引号  表.Filter="分公司='" & User.group & "'"

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/3 12:12:00 [只看该作者]

if User.group<>"总公司" then
表.Filter="分公司='" & User.group & "'"
end if

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


加好友 发短信
等级:四尾狐 帖子:867 积分:6210 威望:0 精华:0 注册:2012/11/24 20:44:00
回复:(Bin)if User.group<>"总公司" th...  发帖心情 Post By:2013/4/3 12:56:00 [只看该作者]

谢谢各位大师的指点,一下子有这么多热心朋友的回复。论坛人气火了不少

如果我想偷懒,能不能实现在项目事件中,一次设置,所有表都按用户所属分公司进行加载,如何弄?(即不用每个表在Afterload中设置一次)

PS:如果分公司人员用Sqlgrouptablebuiler或Sqlcrosstablebuiler统计时,会不会把所有数据都统计了呀?(即从后台统计了所有的数据,包括其它分公司的)

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


加好友 发短信
等级:管理员 帖子:47479 积分:251266 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/4/3 14:15:00 [只看该作者]

1、可以设置啊,问题是有些表可能没有分公司这一列,你可以这样在BeforeLoadInnerTable事件中设置代码:
 
Select Case e.DataTableName
         case "表1","表f", "表j"
              e.Filter = "分公司='"  & e.User.group & "'"  
End select
 
这是内部表的写法,如果是外部表,用BeforeLoadOuterTable事件,代码为:
 
Select Case e.DataTableName
         case "表1","表f", "表j" 
               e.SelectString = "Select * From {" & e.DataTableName & "} Where 分公司='"  & e.User.group & "'"  
End select
 

2、至于统计,用Sqlgrouptablebuiler或Sqlcrosstablebuiler,默认是统计所有数据,但是你可以设置统计条件的啊,例如:
 
Dim b As New SQLGroupTableBuilder("统计表1","订单")
b.Filter = "分公司='"  & e.User.group & "'"  

 

Foxtable已经在方方面面为你考虑了。


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


加好友 发短信
等级:四尾狐 帖子:867 积分:6210 威望:0 精华:0 注册:2012/11/24 20:44:00
回复:(狐狸爸爸)1、可以设置啊,问题是有些表可能没...  发帖心情 Post By:2013/4/3 14:30:00 [只看该作者]

谢谢狐爸,我懂了,太感谢了。

 回到顶部