Foxtable(狐表)用户栏目专家坐堂 → 关于截止统计


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

主题:关于截止统计

帅哥哟,离线,有人找我吗?
大红袍
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/28 16:45:00 [只看该作者]

位置调换一下

 

Dim b As New SQLCrossTableBuilder("损益总体比率","部门损益总账")  '定义变量利润表附表,并从部门损益总账统计数据
b.AddTable("部门损益总账","部门名称","部门档案","部门名称") '添加统计表
b.AddTable("部门损益总账","科目编号","科目档案","科目编码") '添加统计表
b.HGroups.AddDef("所属单位")
b.HGroups.AddDef("部门类型")
b.HGroups.AddDef("上级部门")
b.HGroups.AddDef("所属日期", DateGroupEnum.Year, "年")
b.HGroups.AddDef("所属日期", "月")

b.VGroups.AddDef("一级科目")
b.Totals.AddDef("借方发生", "本月")
b.Totals.AddDef("借方发生", "累计", True)
b.Decimals = 0 '小数点取0位
b.Filter = "零售终端 = True"
b.Build '生成统计表


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


加好友 发短信
等级:六尾狐 帖子:1335 积分:10339 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2015/12/28 16:54:00 [只看该作者]

不行呢,调换了后,把所有部门放一起截止统计了

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/28 17:03:00 [只看该作者]

Dim b As New SQLCrossTableBuilder("损益总体比率","部门损益总账")  '定义变量利润表附表,并从部门损益总账统计数据
b.AddTable("部门损益总账","部门名称","部门档案","部门名称") '添加统计表
b.AddTable("部门损益总账","科目编号","科目档案","科目编码") '添加统计表
b.HGroups.AddDef("所属日期", DateGroupEnum.Year, "年")
b.HGroups.AddDef("所属单位")
b.HGroups.AddDef("部门类型")
b.HGroups.AddDef("上级部门")
b.HGroups.AddDef("所属日期", "月")
b.VGroups.AddDef("一级科目")
b.Totals.AddDef("借方发生", "本月")
b.Totals.AddDef("借方发生", "累计", True)
b.Decimals = 0 '小数点取0位
b.Filter = "零售终端 = True"
b.Build '生成统计表

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


加好友 发短信
等级:六尾狐 帖子:1335 积分:10339 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2015/12/28 17:16:00 [只看该作者]

这下真是对了,真是晕了,测了一下午,各种位置、日期的各种表达方式都测过,竟然没测到这种

多谢了

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


加好友 发短信
等级:六尾狐 帖子:1335 积分:10339 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2015/12/28 17:32:00 [只看该作者]

唉,放到我的正式项目里,竟然还不行,跟我的控件筛选有关,请再帮我看看,我的筛选条件设置哪里有问题
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.foxdb


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/28 18:25:00 [只看该作者]

应该是bug,懒得测试,自己计算截止值吧。

 

Dim b As New SQLCrossTableBuilder("损益总体比率","部门损益总账")  '定义变量利润表附表,并从部门损益总账统计数据
b.AddTable("部门损益总账","部门名称","部门档案","部门名称") '添加统计表
b.AddTable("部门损益总账","科目编号","科目档案","科目编码") '添加统计表
b.HGroups.AddDef("所属日期", DateGroupEnum.Year, "年")
b.HGroups.AddDef("所属单位")
b.HGroups.AddDef("部门类型")
b.HGroups.AddDef("上级部门")
b.HGroups.AddDef("所属日期", "月")
b.VGroups.AddDef("一级科目")
b.Totals.AddDef("借方发生", "本月")
b.Totals.AddDef("借方发生", "累计", True)
b.Decimals = 0 '小数点取0位
b.Filter = "(零售终端 = True and 所属单位 = '温州分公司')"
b.Build '生成统计表

Dim t As Table = Tables("损益总体比率")
Dim drs As List(Of DataRow) = t.DataTable.Select("", "上级部门,年")
For Each c As Col In t.Cols
    If c.Caption Like "*_累计" Then
        Dim pdr As DataRow = Nothing
        Dim by As String = c.name.Replace("_up", "")
        For Each dr As DataRow In drs
            If pdr Is Nothing OrElse dr("上级部门") <> pdr("上级部门") OrElse dr("年") <> pdr("年") Then
                dr(c.name) = dr(by)
            Else
                dr(c.name) = dr(by) + pdr(by)
            End If
            pdr = dr
        Next
    End If
Next


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


加好友 发短信
等级:六尾狐 帖子:1335 积分:10339 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2015/12/28 20:40:00 [只看该作者]

好的,谢谢

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


加好友 发短信
等级:六尾狐 帖子:1335 积分:10339 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2015/12/28 22:45:00 [只看该作者]

    If c.Caption Like "*_累计" Then
        Dim pdr As DataRow = Nothing
        Dim by As String = c.name.Replace("_up", "")
        For Each dr As DataRow In drs
            If pdr Is Nothing OrElse dr("上级部门") <> pdr("上级部门") OrElse dr("年") <> pdr("年") Then
                dr(c.name) = dr(by)
            Else
                dr(c.name) = dr(by) + pdr(by)
            End If

            pdr = dr
        Next
    End If

标颜色的部分是不是只对产生的列名为“_up” 的列有效,如果所有累计列的列名都是正常的,是不是按下面这样就行了
    If c.Caption Like "*_累计" Then
        Dim pdr As DataRow = Nothing
        For Each dr As DataRow In drs
            pdr = dr
        Next
    End If

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/28 22:55:00 [只看该作者]

不是,你不是要按照 部门、年 来累计么?当循环到另一个部门的时候,就要清零

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


加好友 发短信
等级:六尾狐 帖子:1335 积分:10339 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2015/12/28 23:07:00 [只看该作者]

哦,刚刚测试了一下,对于列名有_up的统计表,下面这个代码可以
    If c.Caption Like "*_累计" Then
        Dim pdr As DataRow = Nothing
        Dim by As String = c.name.Replace("_up", "")
        For Each dr As DataRow In drs
            If pdr Is Nothing OrElse dr("上级部门") <> pdr("上级部门") OrElse dr("年") <> pdr("年") Then
                dr(c.name) = dr(by)
            Else
                dr(c.name) = dr(by) + pdr(by)
            End If

            pdr = dr
        Next
    End If
但当某个统计表的列的列名都没有_up的时候好象不行,但下面这个好象可以
    If c.Caption Like "*_累计" Then
        Dim pdr As DataRow = Nothing
        For Each dr As DataRow In drs
            pdr = dr
        Next
    End If


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