Foxtable(狐表)用户栏目专家坐堂 → 【自定义汇总模式】


  共有5538人关注过本帖树形打印复制链接

主题:【自定义汇总模式】

帅哥哟,离线,有人找我吗?
wangjx817
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:261 积分:2156 威望:0 精华:0 注册:2018/4/30 16:00:00
【自定义汇总模式】  发帖心情 Post By:2018/11/21 10:40:00 [只看该作者]

为什么我按照帮助文档中的格式设置自定义汇总模式,不知为什么哪里出错而未出现设计的结果。如下图所示:

图片点击可在新窗口打开查看此主题相关图片如下:l$x@w5q@r0(ujgjyn0wobf.png
图片点击可在新窗口打开查看

我设计的代码是:
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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:261 积分:2156 威望:0 精华:0 注册:2018/4/30 16:00:00
  发帖心情 Post By:2018/11/21 12:27:00 [只看该作者]

统计结果是出来,不知怎么会出现在最上方的三行,而且将原有表格的其中三行数据打乱了。

 回到顶部
帅哥哟,离线,有人找我吗?
wangjx817
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:261 积分:2156 威望:0 精华:0 注册:2018/4/30 16:00:00
  发帖心情 Post By:2018/11/21 12:27:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:剪辑_8.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
wangjx817
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:261 积分:2156 威望:0 精华:0 注册:2018/4/30 16:00:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:261 积分:2156 威望:0 精华:0 注册:2018/4/30 16:00:00
  发帖心情 Post By:2018/11/21 12:47:00 [只看该作者]

谢谢,在你的提示下,我想到方法了,已经解决了。

 回到顶部
帅哥哟,离线,有人找我吗?
wangjx817
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:261 积分:2156 威望:0 精华:0 注册:2018/4/30 16:00:00
  发帖心情 Post By:2018/11/22 15:34:00 [只看该作者]

二级分组汇总时,又出现问题,希望帮忙老师查找一下问题。就是二级的自定义汇总结果不出来:如下图所示:

图片点击可在新窗口打开查看此主题相关图片如下:剪辑_16.jpg
图片点击可在新窗口打开查看
我编写的代码是:
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




 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/22 17:42:00 [只看该作者]

看看,这样写 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=124584&skin=0

 

如果自己不会,实例发上来测试。


 回到顶部
帅哥哟,离线,有人找我吗?
wangjx817
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:261 积分:2156 威望:0 精华:0 注册:2018/4/30 16:00:00
  发帖心情 Post By:2018/11/22 21:28:00 [只看该作者]

OK,看你的链接实例基本理解,好像fo?x?ta?b?leoxtable帮助文档中的多级代码编写有误。非常感谢!

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/22 21:57:00 [只看该作者]

以下是引用wangjx817在2018/11/22 21:28:00的发言:
OK,看你的链接实例基本理解,好像fo?x?ta?b?leoxtable帮助文档中的多级代码编写有误。非常感谢!

 

foxtable没有【多级代码】的,foxtable的例子,是一级分组的。


 回到顶部
总数 23 1 2 3 下一页