以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  汇总后不需要排序  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=15436)

--  作者:qingpuczj
--  发布时间:2011/12/26 13:52:00
--  汇总后不需要排序

Dim t As Table = Tables("XXX公司")
Dim g As Subtotalgroup
t.SubtotalGroups.Clear()
t.GroupAboveData = False
t.TreeVisible = False
t.SpillNode = True

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "部门"
g.TotalOn = "基本工资,工龄工资,岗位工资,职务工资,职称技能,保健,独子费,房贴,小计,奖金,劳务费,加班费,夜班费,应发工资,基本公积,补充公积,养老金,医保,失保,工会费,扣税,扣款,病事假,所得税,实发工资"
g.Caption = "{0} 小计"
t.SubtotalGroups.Add(g)

t.Subtotal()

 

按上面代码可以按部门汇总,但是会自动按部门排序,我不需要部门排序如何完成?

 


--  作者:don
--  发布时间:2011/12/26 13:56:00
--  
http://www.foxtable.com/help/topics/1372.htm

自定义排序

在默认情况下,Subtotal方法会根据分组列进行排序,然后再生成汇总模式。
Subtotal有一个可选参数,如果将其设置为True,那么在生成汇总模式时,可以自定义排序参数,而不是根据分组列排序。
例如根据日期和客户排序,分组列为客户,统计列为数量与金额,生成汇总模式:

Dim t As Table = Tables("订单")
Dim
g As Subtotalgroup
t
.SubtotalGroups.Clear()
g = New Subtotalgroup
g
.Aggregate = AggregateEnum.Sum
g
.GroupOn = "客户"
g
.TotalOn = "数量,金额"
g
.Caption = "{0} 小计"
t
.SubtotalGroups.Add(g)
g = New Subtotalgroup
g
.Aggregate = AggregateEnum.Sum
g
.GroupOn = "*"
g
.TotalOn = "数量,金额"
g
.Caption = "总计"
t
.SubtotalGroups.Add(g)
t.Sort =
"日期,客户" \'指定排序字段
t.Subtotal(
True) \'生成汇总模式


--  作者:qingpuczj
--  发布时间:2011/12/27 0:40:00
--  

t.Sort = "日期,客户" \'指定排序字段
t.Subtotal(
True) \'生成汇总模式

这里还是指定了日期,和客户为排序字段,我的意思是我的原始表已经按部门分类好了,但是汇总后,我希望还是按部门原来的顺序来排列,而不希望是自动排序的

 


--  作者:don
--  发布时间:2011/12/27 12:25:00
--  
以下是引用qingpuczj在2011-12-27 0:40:00的发言:

t.Sort = "日期,客户" \'指定排序字段
t.Subtotal(
True) \'生成汇总模式

这里还是指定了日期,和客户为排序字段,我的意思是我的原始表已经按部门分类好了,但是汇总后,我希望还是按部门原来的顺序来排列,而不希望是自动排序的

 

那么不要指定排序,只保留:

t.Subtotal(True\'生成汇总模式