百分比与统计
假定有下图所示的一个数据表:
希望按日期生成汇总模式,统计出每日的生产数、成品数和成品率:
显然,生产数和成品数,可以按常规统计出来,但是成品率却没有没办法直接统计得出,只能在得到生产数和成品数的统计结果后,据此计算得出成品率,代码如下:
Dim
t As
Table = Tables("订单")
Dim
g As
Subtotalgroup
t.SubtotalGroups.Clear()
g
= New
Subtotalgroup
g.GroupOn
= "日期"
g.TotalOn
= "生产数,成品数"
g.DateGroup
= DateGroupEnum.Day
t.SubtotalGroups.Add(g)
g
= New
Subtotalgroup
g.GroupOn
= "*"
g.TotalOn
= "生产数,成品数"
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.IsGroup
Then
r("成品率")
= r("成品数")
/ r("生产数")
End If
Next
同样,如果要得到下图所示的分组统计结果:
也是没有办法直接分组统计得出的,但是可以利用分组统计得出生产数和成品数,然后在生成的统计表中增加一个表达式列,计算出成品率:
Dim
g As
New
GroupTableBuilder("统计表1",
DataTables("订单"))
g.Groups.AddDef("日期",
DateGroupEnum.None)
g.Totals.AddDef("生产数")
g.Totals.AddDef("成品数")
g.VerticalTotal
= True
g.Build()
DataTables("统计表1").DataCols.Add("成品率",Gettype(Double),"成品数/生产数")
DataTables("统计表1").DataCols("成品率").SetFormat("#0.00%")
MainTable =
Tables("统计表1")