以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  按列内容筛选加载,代码怎么弄?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=30772)

--  作者:zerov
--  发布时间:2013/4/3 12:06:00
--  按列内容筛选加载,代码怎么弄?
假设所有数据表都有一列“分公司”的列名,登录用户名都是各个分公司的

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

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

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

如下图:

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


--  作者:zerov
--  发布时间:2013/4/3 12:07:00
--  
还有,总公司 的人员则可以看到所有分公司的数据(即加载所有数据),这个如何设置?
--  作者:Bin
--  发布时间:2013/4/3 12:08:00
--  
表.Filter="分公司=User.group"
--  作者:XYT
--  发布时间:2013/4/3 12:09:00
--  
http://www.foxtable.com/help/topics/1473.htm
--  作者:Bin
--  发布时间:2013/4/3 12:11:00
--  
要注意单引号  表.Filter="分公司=\'" & User.group & "\'"
--  作者:Bin
--  发布时间:2013/4/3 12:12:00
--  
if User.group<>"总公司" then
表.Filter="分公司=\'" & User.group & "\'"
end if

--  作者:zerov
--  发布时间:2013/4/3 12:56:00
--  回复:(Bin)if User.group<>"总公司" th...
谢谢各位大师的指点,一下子有这么多热心朋友的回复。论坛人气火了不少

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

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

--  作者:狐狸爸爸
--  发布时间: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
--  发布时间:2013/4/3 14:30:00
--  回复:(狐狸爸爸)1、可以设置啊,问题是有些表可能没...
谢谢狐爸,我懂了,太感谢了。