LayersGroupTableBuilder(层级)
Foxtbale使用LayersGroupTableBuilder类对层级型分级数据进行分组统计。
LayersGroupTableBuilder的属性有:
SourceTable | DataTable类型,指定要统计的DataTable |
PathCol | 字符型,指定层级列。 |
NameCol | 字符型,指定名称列。 |
Separator | 字符型,指定层级列的分割符号 |
Lengths | 整数型数组,如果层级列是按长度分割的,用于此属性指定层级列的各级长度。 |
GridTree | 逻辑型,统计表是否默认开启折叠模式。 |
ExpandTo | 整数型,指定折叠树默认展开到第几级。 |
OnlyGroupRows | 逻辑型,统计表是否只保留分组行。 |
PreserveTo | 逻辑型,指定统计统计表保留到第几级分组行。 |
Filter | 字符型,指定统计条件。 |
LayersGroupTableBuilder通过AddTotal方法来增加统计列,AddTotal的语法有(最后两个语法用于添加记录数统计):
AddTotal(ColName, NewName)
AddTotal(ColName, NewName, AggregateRange)
AddTotal(ColName, NewName, AggregateRange, AggregateType)
AddTotal(True, NewName)
AddTotal(True, NewName, AggregateRange)
各参数说明:
ColName | 字符型,指定要统计的数据列。 |
NewName | 字符型,为生成的统计结果指定一个列名。 |
AggregateRange | AggregateRange类型, 指定统计范围。 Self:仅统计本级数据 Sub:仅统计下级数据 Both:全部统计 默认为2. |
AggregateType | AggregateType类型,指定统计类型。 Sum:求和 Max:最大值 Min:最小值 Average:平均值 默认为求和 |
执行以下示例代码之前,请先打开CaseStudy目录下的示例文件: 分级数据.Table
示例一
选择表"销售B",在命令窗口执行下面的代码:
Dim
st As
new
LayersGroupTableBuilder("统计表1")
st.DataTable
= DataTables("销售B")
st.PathCol=
"层级"
st.NameCol
= "员工"
st.Separator
= "."
st.GridTree
= True
st.AddTotal(True,"订单数_本人",0)
st.AddTotal(True,"订单数_团队")
st.AddTotal("数量","销量_本人",0)
st.AddTotal("数量","销量_团队")
st.Build()
MainTable =
Tables("统计表1")
得到的统计结果为:
示例二
选择表"销售C",在命令窗口执行下面的代码:
Dim
st As
new
LayersGroupTableBuilder("统计表1")
st.DataTable
= DataTables("销售C")
st.PathCol=
"级码"
st.NameCol
= "员工"
st.Lengths=
{2}
st.GridTree
= True
st.AddTotal(True,"订单数")
st.AddTotal("数量","数量")
st.Build()
MainTable =
Tables("统计表1")
得到的统计结果为:
提示:可以分别指定各级长度,假定第一级的长度是1,第二级的长度是3,第三级开始长度为2,那么可以将长度设置代码改为:
st.Lengths=
{1,3,2}
示例三
选择表"销售D",在命令窗口执行下面的代码:
Dim
st As
new
LayersGroupTableBuilder("统计表1")
st.DataTable
= DataTables("销售D")
st.PathCol=
"员工"
st.Separator
= "\"
st.AddTotal("数量","数量")
st.GridTree
= True
st.OnlyGroupRows
= True
st.ExpandTo
= 1
st.Build()
MainTable =
Tables("统计表1")
得到的统计结果为: