Foxtable(狐表)用户栏目专家坐堂 → 请教表的统计


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

主题:请教表的统计

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


加好友 发短信
等级:狐神 帖子:5061 积分:13092 威望:0 精华:0 注册:2014/5/15 21:34:00
请教表的统计  发帖心情 Post By:2014/7/3 10:06:00 [只看该作者]

请教大师:如下例
1、如何根据表a生成表b格式的统计表?
2、表a数据变化后,表b联动?


一边看球,一边思考如何搞?人家球进了5个,我还是零!只有
拜托!拜托!大师

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.zip



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


加好友 发短信
等级:贵宾 帖子:35433 积分:178530 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/7/3 10:14:00 [只看该作者]

直接用分组统计

Dim g As New GroupTableBuilder("统计表1", DataTables("表A"))
g.Groups.AddDef("区域")
g.Groups.AddDef("企业")
g.Totals.AddDef("销售金额")
g.SubTotal = True
g.Build()
MainTable = Tables("统计表1")

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


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

 请不要这样做,这样做不规范,这样做累死自己。

 

 直接用分组统计,或者交叉统计去做就好。


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


加好友 发短信
等级:狐神 帖子:5061 积分:13092 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2014/7/3 10:26:00 [只看该作者]

老板就喜欢这种样式的报表?没办法!通过代码如何能达到这种效果?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178530 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/7/3 10:28:00 [只看该作者]

输出报表的时候,在专业报表处理吧. 狐表中就不要这么折腾了.

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


加好友 发短信
等级:狐神 帖子:5061 积分:13092 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2014/7/3 10:30:00 [只看该作者]

如果狐表能与xbrl有效结合,那市场大的去了。销售至少100亿

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


加好友 发短信
等级:狐神 帖子:5061 积分:13092 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2014/7/3 10:50:00 [只看该作者]

图片点击可在新窗口打开查看   帮忙呀兄弟!

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


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

代码,每次重新生成

 

Dim cidx As Integer = 0
Dim ridx As Integer = 0
Dim dt As DataTable = DataTables("表B")
Dim t As Table = Tables("表B")
dt.DataRows.Clear
Dim fr As Row
Dim cname(1) As String
Dim dta As DataTable = DataTables("表A")
Dim sum1, sum2 As Integer
For Each qy As String In dta.GetValues("区域")
    Dim qys As List(Of String) = dta.GetValues("企业", "区域 = '" & qy & "'")
    If cidx = 0 Then
        cname(0) = "区域"
        cname(1) = "销售金额"
        fr = t.AddNew
        fr(cname(0)) = qy
        dt.AddNew(qys.Count+1)
        ridx = fr.index + qys.Count
    Else If cidx = 1 Then
        cname(0) = "区域1"
        cname(1) = "销售金额1"
        fr(cname(0)) = qy
        If fr.Index + qys.Count > ridx Then
            dt.AddNew(fr.Index + qys.Count - ridx)
            ridx = fr.Index + qys.Count
        End If
    End If
    For i As Integer = 0 To qys.Count - 1
        Dim r As Row = t.Rows(fr.Index+i+1)
        r(cname(0)) = qys(i)
        r(cname(1)) = dta.Compute("sum(销售金额)", "区域 = '" & qy & "' and 企业 = '" & qys(i) & "'")
    Next
    t.Rows(ridx+1)(cname(0)) = "小计"
    t.Rows(ridx+1)(cname(1)) = dta.Compute("sum(销售金额)", "区域 = '" & qy & "'")
    If cidx = 0 Then
        sum1 += val(t.Rows(ridx+1)(cname(1)))
        cidx = 1
    Else If cidx = 1 Then
        sum2 += val(t.Rows(ridx+1)(cname(1)))
        cidx = 0
    End If
Next
Dim zjr As Row = t.AddNew
zjr("区域") = "总计"
zjr("销售金额") = sum1
zjr("区域1") = "总计"
zjr("销售金额1") = sum2


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


加好友 发短信
等级:狐神 帖子:5061 积分:13092 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2014/7/3 11:33:00 [只看该作者]

谢谢甜大师!有情后补!

 回到顶部