以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请教分类汇总句法。 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=135530) |
-- 作者:lanbor -- 发布时间:2019/5/29 8:40:00 -- 请教分类汇总句法。 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 = "proc_lab" g.TotalOn = "proc_zbsj,proc_jbsj,proc_gshj" g.Aggregate = AggregateEnum.count g.TotalOn = "proc_bh" g.Caption = "{0} 小计" t.SubtotalGroups.Add(g) 请教:我希望在同一行实现对出勤人数计数,对出勤时间汇总,的分类显示方式; 请问这语句应该怎么写? 谢谢! |
-- 作者:有点甜 -- 发布时间:2019/5/29 9:16:00 -- 参考
http://www.foxtable.com/webhelp/scr/1964.htm
|
-- 作者:lanbor -- 发布时间:2019/5/29 9:22:00 -- 谢谢你:有点甜。 谢谢你指引:有点甜。 |
-- 作者:lanbor -- 发布时间:2019/5/29 10:49:00 -- 分类汇总再请教! Dim t As Table = Tables("proc97") Dim v1,v2,v3,v4,f1 As String Dim g As Subtotalgroup t.SubtotalGroups.Clear() t.GroupAboveData = False \'分组行不在数据之前 t.TreeVisible = False \'显示目录树 t.SpillNode = False \' g = New Subtotalgroup g.Aggregate = AggregateEnum.Sum g.GroupOn = "proc_zw" \'"*" \'g.TotalOn = "proc_zbsj,proc_jbsj,proc_gshj" g.Caption = "{0}" \'"总计" t.SubtotalGroups.Add(g) t.Subtotal() Dim r1 As Row For i1 As Integer =0 To t.Rows.Count(True) - 1 r1=t.Rows(i1,True) If r1.IsGroup Then f1="proc_zw = \'"& r1("proc_zw") &"\'" ‘按员工职务分类汇总 r1("proc_bh")=t.Compute("count(proc_bh)",f1) r1("proc_zbsj")=t.Compute("sum(proc_zbsj)",f1) r1("proc_jbsj")=t.Compute("sum(proc_jbsj)",f1) r1("proc_gshj")=t.Compute("sum(proc_gshj)",f1) End If Next 我使用以上代码,但输出结果全是0,还请专家指教哪里写的不对? [此贴子已经被作者于2019/5/29 10:49:34编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/5/29 10:56:00 -- 改成
f1="proc_zw = \'"& r1("姓名列") &"\'" |
-- 作者:lanbor -- 发布时间:2019/5/29 11:33:00 -- 谢谢你,有点甜! 哦,原来是这样处理! |
-- 作者:lanbor -- 发布时间:2019/5/29 11:56:00 -- 分类汇总再三请教! Dim t As Table = Tables("proc97") Dim v1,v2,v3,v4,f1,f2 As String Dim r1 As Row Dim g As Subtotalgroup Dim g1 As Subtotalgroup t.SubtotalGroups.Clear() t.GroupAboveData = False \'分组行不在数据之前 t.TreeVisible = False \'显示目录树 t.SpillNode = False \' g = New Subtotalgroup g.Aggregate = AggregateEnum.Sum g.GroupOn = "proc_zw" \'按职务分类 g.Caption = "{0}" \'"总计" t.SubtotalGroups.Add(g) g1 = New Subtotalgroup g1.Aggregate = AggregateEnum.Sum g1.GroupOn = "proc_bm" \'按部门分类 g1.Caption = "{0}" t.SubtotalGroups.Add(g1) t.Subtotal() For i1 As Integer =0 To t.Rows.Count(True) - 1 r1=t.Rows(i1,True) If r1.IsGroup Then f1="proc_zw = \'"& r1("proc_xm") &"\'" r1("proc_bh")=t.Compute("count(proc_bh)",f1) r1("proc_zbsj")=t.Compute("sum(proc_zbsj)",f1) r1("proc_jbsj")=t.Compute("sum(proc_jbsj)",f1) r1("proc_gshj")=t.Compute("sum(proc_gshj)",f1) End If Next 我用以上代码,只能实现一个组的分类计数和合计, 我测试性操作几次,只能得到一种分类汇总结果。 不知道如何对多个分组进行类似操作,还请专家再指教! 非常感谢! |
-- 作者:lanbor -- 发布时间:2019/5/29 13:03:00 -- 谢谢专家,我已经找到答案了。 For i1 As Integer =0 To t.Rows.Count(True) - 1 r1=t.Rows(i1,True) If r1.IsGroup Then \'messagebox.show(r1.level) Select Case r1.Level ’我就是在找这个属性 Case 1 f1="proc_zw = \'"& r1("proc_xm") &"\'" r1("proc_bh")=t.Compute("count(proc_bh)",f1) r1("proc_zbsj")=t.Compute("sum(proc_zbsj)",f1) r1("proc_jbsj")=t.Compute("sum(proc_jbsj)",f1) r1("proc_gshj")=t.Compute("sum(proc_gshj)",f1) Case 0 f1="proc_bm = \'"& r1("proc_xm") &"\'" r1("proc_bh")=t.Compute("count(proc_bh)",f1) r1("proc_zbsj")=t.Compute("sum(proc_zbsj)",f1) r1("proc_jbsj")=t.Compute("sum(proc_jbsj)",f1) r1("proc_gshj")=t.Compute("sum(proc_gshj)",f1) End Select End If Next
|
-- 作者:有点甜 -- 发布时间:2019/5/29 13:22:00 -- 参考
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=124584&skin=0
|