以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  新手求教想在状态栏里做一行对当前表的分组统计  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=82010)

--  作者:free666
--  发布时间:2016/3/10 10:38:00
--  新手求教想在状态栏里做一行对当前表的分组统计
有一个人员总表,根据查询条件用filter做了过滤显示, 那么我想在状态栏上显示下面的结果:
select 部门, count(*) 人数 fro m {人员总表} group by 部门
在状态栏里用一行来显示如:
经营部XX人,销售部XX人,....总人数XX人
部门名称根据filter过滤后得到,也就是说部门不是固定的,如果group by 出来没有的话就不显示出来
然后这个统计显示要跟着查询表内容变换后刷新是写在什么事件里?

--  作者:大红袍
--  发布时间:2016/3/10 11:05:00
--  

参考代码

 

Dim str As String = ""
Dim sum As Double = 0
For Each bm As String In DataTables("表A").GetValues("第一列", Tables("表A").filter)
    Dim count As Double = Tables("表A").compute("count(第一列)")
    str &= bm & ":" & count & ";"
    sum += count
Next
str &= "总共:" & sum
msgbox(str)

 

既然你用filter过滤,那就写到AfterFilter事件去。


--  作者:free666
--  发布时间:2016/3/10 17:01:00
--  
还有个问题,如果字符串太长赋给statusbar.message2就不会显示?
这个想要看到的话怎么处理? 
message2允许的字符串长度是多少?


--  作者:狐狸爸爸
--  发布时间:2016/3/10 21:52:00
--  

太长肯定无法在状态栏显示,你可以AfterFilter事件中设置一下汇总模式统计:

 

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

 


--  作者:大红袍
--  发布时间:2016/3/11 0:09:00
--  

建议你可以在底部放一个停靠窗口,把内容显示到窗口里也可以。