交叉统计
Dim b As New CrossTableBuilder("统计表1", DataTables("表C"))
b.HGroups.AddDef("品名") '
b.VGroups.AddDef("日期", DateGroupEnum.Year, "{0}年") '
b.VGroups.AddDef("日期", DateGroupEnum.Month, "{0}月") '
b.Totals.AddDef("数量") '
b.VerticalTotal = True '垂直汇总
b.HorizontalTotal = True '水平汇总
b.Build '生成统计表
由听说用SQL会更快,上面好象也是SQL语句封装的,
用SQL如何实现上面功能?
If Tables("表C").current.IsNull("审核") Then
Dim b As New CrossTableBuilder("统计表1", DataTables("表C"))
b.HGroups.AddDef("品名") '
b.VGroups.AddDef("日期", DateGroupEnum.Year, "{0}年") '
b.VGroups.AddDef("日期", DateGroupEnum.Month, "{0}月") '
b.Totals.AddDef("数量") '
b.VerticalTotal = True '垂直汇总
b.HorizontalTotal = True '水平汇总
b.Build '生成统计表
End If
需求:如果表C的 审核为是就汇总,如果否,为不汇总。上面代码执行后,没报错,也没实现汇总,如何处理?
If Tables("表C").current("审核")=true Then
DataTables("生产日报表").DeleteFor("")
Dim b As New CrossTableBuilder("统计表1", DataTables("表C"))
b.HGroups.AddDef("品名") '
b.VGroups.AddDef("日期", DateGroupEnum.Year, "{0}年") '
b.VGroups.AddDef("日期", DateGroupEnum.Month, "{0}月") '
b.Totals.AddDef("数量") '
b.VerticalTotal = True '垂直汇总
b.HorizontalTotal = True '水平汇总
b.Build '生成统计表
End If
执行后,没按条件统计。需求:如果表C的 审核为是就汇总,如果否,为不汇总?
If Tables("订单").Filter = "[审核] Is Null AND [审核]= ''" Then
Dim b As New GroupTableBuilder("统计表1", DataTables("订单"))
' b.Groups.AddDef("客户") '
Tables("窗口1_Table1").DataSource = b.BuildDataSource() '
[此贴子已经被作者于2025/1/14 10:57:29编辑过]
If Tables("订单").Filter = "[审核] Is Null AND [审核]= ''" Then
Dim b As New GroupTableBuilder("统计表1", DataTables("订单"))
b.Filter = "[审核] =true"
b.Groups.AddDef("产品") '
' b.Groups.AddDef("客户") '
b.Totals.AddDef("数量") '
Tables("窗口1_Table1").DataSource = b.BuildDataSource() '
End If
还是不行?需求是先判断订单中审核列是否空值,如果是空值时进行统计,否则,不统计
去掉if代码
Dim b As New GroupTableBuilder("统计表1", DataTables("订单"))
b.Filter = "[审核] =false"
b.Groups.AddDef("产品") '
b.Totals.AddDef("数量") '
Tables("窗口1_Table1").DataSource = b.BuildDataSource() '
[此贴子已经被作者于2025/1/14 13:31:03编辑过]