Foxtable(狐表)用户栏目专家坐堂 → [求助]交叉统计不显示数据(手工编写,如果某条件列有空值则统计数据也为空)


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

主题:[求助]交叉统计不显示数据(手工编写,如果某条件列有空值则统计数据也为空)

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


加好友 发短信
等级:一尾狐 帖子:480 积分:4470 威望:0 精华:0 注册:2014/3/4 21:20:00
[求助]交叉统计不显示数据(手工编写,如果某条件列有空值则统计数据也为空)  发帖心情 Post By:2020/9/20 12:54:00 [显示全部帖子]

如题:
交叉统计不显示数据(手工编写,如果某条件列有空值,则对应的行统计数据也显示为空)
比如,用气明细  表中,类别列里,个别行字段为空值,则在 气量统计 表中,统计各日期下的数据都为空.....同样方式在EXCEL透视表中,是可以显示数据的.
代码如下:
        Dim dtb As New DataTableBuilder("气量统计")
        dtb.AddDef("排序", Gettype(String), 50)
        dtb.AddDef("位置", Gettype(String), 50)
        dtb.AddDef("回路名称", Gettype(String), 50)
        dtb.AddDef("类别", Gettype(String), 50)
        'dtb.AddDef("合并字符",Gettype(String),100)
        Dim prds As List(of String) = DataTables("用气明细").GetValues("日期")
        For Each prd As Date In prds
            dtb.AddDef(prd, Gettype(Double))
        Next
        dtb.Build()
        For Each cus() As String In dt.GetValues("排序|位置|回路名称|类别")
            Dim dtbr As DataRow = DataTables("气量统计").AddNew()
            dtbr("排序") = cus(0)
            dtbr("位置") = cus(1)
            dtbr("回路名称") = cus(2)
            dtbr("类别") = cus(3)
            'dtbr("合并字符") = cus(0) & cus(1) & cus(2) & cus(3)
            For Each prd As Date In prds
                dtbr(prd) = dt.Compute("Sum(实际用气量)","排序 = '" & cus(0) & "'and  位置 = '" & cus(1) & "' and 回路名称 = '" & cus(2) & "' and 类别 ='" & cus(3) & "' And [日期] = '" & prd.Date & "'")
            Next
        Next
        MainTable = Tables("气量统计")

 回到顶部