以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 【自定义汇总模式】 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=127749) |
-- 作者:wangjx817 -- 发布时间:2018/11/21 10:40:00 -- 【自定义汇总模式】 为什么我按照帮助文档中的格式设置自定义汇总模式,不知为什么哪里出错而未出现设计的结果。如下图所示: 我设计的代码是: Dim t As Table = Tables("松北所DMA分区统计表") Dim g As Subtotalgroup t.SubtotalGroups.Clear() t.GroupAboveData = False t.TreeVisible = False g = New Subtotalgroup g.Aggregate = AggregateEnum.Sum g.GroupOn = "管理站" g.TotalOn = "口径_100,口径_150,口径_200,口径_300,口径_50,口径_80,单路,多路,合计" g.Caption = "{0}" t.SubtotalGroups.Add(g) g = New Subtotalgroup g.Aggregate = AggregateEnum.Sum g.GroupOn = "*" g.TotalOn = "口径_100,口径_150,口径_200,口径_300,口径_50,口径_80,单路,多路,合计" g.Caption = "总计" t.SubtotalGroups.Add(g) t.Sort = "管理站,小区编号" \'指定排序字段 t.Subtotal(True) \'生成汇总模式 Dim r As Row For i As Integer = 0 To t.Rows.Count(True) - 2 r = t.Rows(i,True) If r.IsGroup \'如果是分组行 Dim f As String = "管理站 = \'" & r("管理站") & "\'" Dim v As String = " DMA小区数:" & t.Compute("Count(小区编号)",f) v = v & " 考核表数量:" & t.Compute("Sum(合计)",f) v = v & " 单路数量:" & t.Compute("Sum(单路)",f) v = v & " 多路数量:" & t.Compute("Sum(多路)",f) r("管理站") = "管理站:" & r("管理站") & v End If Next |
-- 作者:有点甜 -- 发布时间:2018/11/21 10:51:00 -- 试试改成
For i As Integer = 0 To t.Rows.Count(True) - 2
r = t.Rows(i,True)
If r.IsGroup \'如果是分组行
r = t.rows(i-1, true) |
-- 作者:wangjx817 -- 发布时间:2018/11/21 12:27:00 -- 统计结果是出来,不知怎么会出现在最上方的三行,而且将原有表格的其中三行数据打乱了。 |
-- 作者:wangjx817 -- 发布时间:2018/11/21 12:27:00 -- 此主题相关图片如下:剪辑_8.jpg |
-- 作者:wangjx817 -- 发布时间:2018/11/21 12:46:00 -- 我找方法了: Dim r,r1 As Row For i As Integer = 0 To t.Rows.Count(True) - 2 r = t.Rows(i,True) If r.IsGroup \'如果是分组行 r1 = t.rows(i-1, True) Dim f As String = "管理站 = \'" & r1("管理站") & "\'" |
-- 作者:wangjx817 -- 发布时间:2018/11/21 12:47:00 -- 谢谢,在你的提示下,我想到方法了,已经解决了。 |
-- 作者:wangjx817 -- 发布时间:2018/11/22 15:34:00 -- 二级分组汇总时,又出现问题,希望帮忙老师查找一下问题。就是二级的自定义汇总结果不出来:如下图所示: 我编写的代码是: Dim t As Table = Tables("松北所DMA分区统计表") Dim g As Subtotalgroup t.SubtotalGroups.Clear() t.GroupAboveData = False t.TreeVisible = False g = New Subtotalgroup g.Aggregate = AggregateEnum.Sum g.GroupOn = "分块" g.Caption = "{0}" t.SubtotalGroups.Add(g) g = New Subtotalgroup g.Aggregate = AggregateEnum.Sum g.GroupOn = "管理站" g.Caption = "{0}" t.SubtotalGroups.Add(g) \'g = New Subtotalgroup \'g.Aggregate = AggregateEnum.Sum \'g.GroupOn = "*" \'g.Caption = "总计" \'t.SubtotalGroups.Add(g) t.Subtotal() Dim r As Row For i As Integer = 0 To t.Rows.Count(True) - 1 r = t.Rows(i,True) If r.Level = 0 Then If r.IsGroup \'如果是分组行 Dim f As String = "管理站 = \'" & r("序号") & "\'" Dim v As String = " DMA小区:" & t.Compute("Count(小区编号)",f) & "个" v = v & " 考核表:" & t.Compute("Sum(合计)",f) & "个" v = v & " 单路表:" & t.Compute("Sum(单路)",f) & "个" v = v & " 多路表:" & t.Compute("Sum(多路)",f) & "个" r("序号") = "管理站:" & r("序号") & v ElseIf r.Level = 1 Then Dim pr As Row = t.Rows(r.Index - 1, True) Dim f As String = "管理站 = \'" & pr("管理站") & "\' and 分块 = \'" & pr("分块") & "\'" Dim v As String = " DMA小区:" & t.Compute("Count(小区编号)",f) & "个" v = v & " 考核表:" & t.Compute("Sum(合计)",f) & "个" v = v & " 单路表:" & t.Compute("Sum(单路)",f) & "个" v = v & " 多路表:" & t.Compute("Sum(多路)",f) & "个" r("序号") = pr("管理站") & "-" & pr("分块") & ":" & v End If End If Next |
-- 作者:有点甜 -- 发布时间:2018/11/22 17:42:00 -- 看看,这样写 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=124584&skin=0
如果自己不会,实例发上来测试。 |
-- 作者:wangjx817 -- 发布时间:2018/11/22 21:28:00 -- OK,看你的链接实例基本理解,好像fo?x?ta?b?leoxtable帮助文档中的多级代码编写有误。非常感谢! |
-- 作者:有点甜 -- 发布时间:2018/11/22 21:57:00 -- 以下是引用wangjx817在2018/11/22 21:28:00的发言:
OK,看你的链接实例基本理解,好像fo?x?ta?b?leoxtable帮助文档中的多级代码编写有误。非常感谢!
foxtable没有【多级代码】的,foxtable的例子,是一级分组的。 |