Previous topicNext topic
Help > 开发指南 > SanMuGrid平台编程 > 主要对象 > BaseGrid > 属性 >
分类汇总
属性名称 分类 是否常用 说明
IsGroupAboveData 分类汇总 逻辑型,该属性决定汇总模式下,分组行是否位于数据行之前,默认为False,设为True,分组行将位于数据行之前
IsTreeVisible 分类汇总 逻辑型,该属性决定在汇总模式下是否显示目录树,默认为False,设为True,将显示目录树
IsSubtotal 分类汇总 逻辑型,判断Table是否处于汇总模式
SubtotalGroups 分类汇总 集合,包括汇总模式下的各个分组设置
AllowEditWhenSubtotal 分类汇总 当分类汇总时是否允许用户编辑数据。

 

Subtotal(Boolean) 统计 根据现有的分组设置生成汇总模式
SubtotalByName 统计 根据分类汇总名称来统计数据。

如果在已经设置了相应的默认数据汇总的情况下,我们可以用非常简单方式直接按照分类汇总名称来应用相应的设置。

Dim tbl As SmGrid=Proj.CurrentSmGrid
tbl.SubtotalByName("Test")
执行之后就完成的统计。
下面演示如何用代码手动实现上面的功能。

Vb.Net
Dim tbl As SmGrid = Proj.CurrentSmGrid
'设置是否显示目录树
tbl.IsTreeVisible = True
'分组行是否位于数据行之前
tbl.IsGroupAboveData = True
'是否允许编辑数据
tbl.AllowEditWhenSubtotal = False
'在统计之前先清空之前的统计
tbl.SubtotalGroups.Clear()
'定义一个汇总分组
Dim group As SubtotalGroup = New SubtotalGroup()
'设置统计的类型
group.Aggregate = AggregateEnum.Sum
'设置目录树节点的层级
group.Level = 0
'基于哪个列进行分组
group.GroupOn ="客户"
'统计列,可以有多列,中间用“,”分隔开。
group.TotalOn = "数量,金额"
'统计行的标题,{0}代表分组记录的值
group.Caption = "{0}小计"
'将汇总分组添加到最后的集合当中
tbl.SubtotalGroups.Add(group)

group = New SubtotalGroup()
'设置统计的类型
group.Aggregate = AggregateEnum.Sum
'设置目录树节点的层级
group.Level = 1
'基于哪个列进行分组
group.GroupOn ="产品"
'统计列,可以有多列,中间用“,”分隔开。
group.TotalOn = "数量,金额"
'统计行的标题,{0}代表分组记录的值
group.Caption = "{0}小计"
'将汇总分组添加到最后的集合当中
tbl.SubtotalGroups.Add(group)

group = New SubtotalGroup()
'设置统计的类型
group.Aggregate = AggregateEnum.Sum
'设置目录树节点的层级
group.Level = 2
'基于哪个列进行分组
group.GroupOn ="业务员"
'统计列,可以有多列,中间用“,”分隔开。
group.TotalOn = "数量,金额"
'统计行的标题,{0}代表分组记录的值
group.Caption = "{0}小计"
'将汇总分组添加到最后的集合当中
tbl.SubtotalGroups.Add(group)
'开始统计
tbl.Subtotal(False)

C#
SmGrid tbl = Proj.CurrentSmGrid;
// 设置是否显示目录树
tbl.IsTreeVisible = true;
// 分组行是否位于数据行之前
tbl.IsGroupAboveData = true;
// 是否允许编辑数据
tbl.AllowEditWhenSubtotal = false;
// 在统计之前先清空之前的统计
tbl.SubtotalGroups.Clear();
// 定义一个汇总分组
SubtotalGroup group = new SubtotalGroup();
// 设置统计的类型
group.Aggregate = AggregateEnum.Sum;
// 设置目录树节点的层级
group.Level = 0;
// 基于哪个列进行分组
group.GroupOn = "客户";
// 统计列,可以有多列,中间用“,”分隔开。
group.TotalOn = "数量,金额";
// 统计行的标题,{0}代表分组记录的值
group.Caption = "{0}小计";
// 将汇总分组添加到最后的集合当中
tbl.SubtotalGroups.Add(group);

group = new SubtotalGroup();
// 设置统计的类型
group.Aggregate = AggregateEnum.Sum;
// 设置目录树节点的层级
group.Level = 1;
// 基于哪个列进行分组
group.GroupOn = "产品";
// 统计列,可以有多列,中间用“,”分隔开。
group.TotalOn = "数量,金额";
// 统计行的标题,{0}代表分组记录的值
group.Caption = "{0}小计";
// 将汇总分组添加到最后的集合当中
tbl.SubtotalGroups.Add(group);

group = new SubtotalGroup();
// 设置统计的类型
group.Aggregate = AggregateEnum.Sum;
// 设置目录树节点的层级
group.Level = 2;
// 基于哪个列进行分组
group.GroupOn = "业务员";
// 统计列,可以有多列,中间用“,”分隔开。
group.TotalOn = "数量,金额";
// 统计行的标题,{0}代表分组记录的值
group.Caption = "{0}小计";
// 将汇总分组添加到最后的集合当中
tbl.SubtotalGroups.Add(group);
// 开始统计
tbl.Subtotal(false);