C1FlexGrid.Subtotal方法可以增加包含普通(非小计)行的汇总数据的分类汇总行。

分类汇总支持分层聚合。例如,如果你的表格包含销售数据,你可能会通过产品、地区和推销员来小计一下以得出总的销售数字。下面的代码说明了这一点:

  1:         private void UpdateTotals()
  2:         {
  3:             // clear existing totals
  4:             _flex.Subtotal(AggregateEnum.Clear);
  5:
  6:             // calculate subtotals (three levels, totals on every column)
  7:             for (int c = 3; c < _flex.Cols.Count; c++)
  8:             {
  9:                 if (_chkGrand.Checked)
 10:                     _flex.Subtotal(AggregateEnum.Sum, 0, -1, c, "各类产品合计");
 11:                 if (_chkDirection.Checked)
 12:                     _flex.Subtotal(AggregateEnum.Sum, 1, 1, c, "{0}合计");
 13:                 if (_chkRegion.Checked)
 14:                     _flex.Subtotal(AggregateEnum.Sum, 2, 2, c, "{0}方区域合计");
 15:             }
 16:
 17:             // done, autosize columns to finish
 18:             _flex.AutoSizeCols();
 19:         }

代码中重要接口说明:

_flex.Tree.Column:获取或设置树形结构在哪一列显示。

_flex.Subtotal(AggregateEnum.Sum, -1, -1, 3, "Grand Total");

参数1:同时方式

参数2:当前树节点的级别,-1 为最外层节点

参数3:用于获取分组信息的列

参数4:统计的列

参数5:分组说明文本信息

即上述代码设置了三层分组,第一层为所有销售信息的汇总。第二层以产品类别分组,第三层以区域信息进行分组。

当C1FlexGrid.Subtotal方法添加了汇总信息行,它会自动分配汇总样式到新的行(有五个层级的分类汇总内置样式)。你可以使用“样式编辑器”或代码在设计器中改变大纲样式的属性,以此来自定义分类汇总行的外观。例如:

  1: // 设置分类汇总的样式。
  2: CellStyle cs;
  3: cs = _flex.Styles[CellStyleEnum.GrandTotal];
  4: cs.BackColor = Color.Black;
  5: cs.ForeColor = Color.White;
  6: cs.Font = new Font(Font, FontStyle.Bold);
  7: cs = _flex.Styles[CellStyleEnum.Subtotal0];
  8: cs.BackColor = Color.DarkRed;
  9: cs.ForeColor = Color.White;
 10: cs.Font = new Font(Font, FontStyle.Bold);
 11: cs = _flex.Styles[CellStyleEnum.Subtotal1];
 12: cs.BackColor = Color.DarkBlue;
 13: cs.ForeColor = Color.White;
 14: 

执行此代码后,表格看起来是这样的:

除了总量之外,你也可以计算其他分类汇总(例如,平均值或百分比),并计算每一行的几个汇总(例如,毛销售额及净销售额)。

Demo 下载:

VS2010 + C# + Framework 4.0 + Studio for Winforms 2013V3 点击下载

VS2010 + VB.NET + Framework 4.0 + Studio for Winforms 2013V3 点击下载

Studio for Winforms FlexGrid: 创建分类汇总的更多相关文章

  1. Studio for Winforms FlexGrid:导出到 PDF 文件

    本篇文章主要介绍如何导出 FlexGrid 到 PDF 格式文件.本文源于论坛用户,有多个用户提出如何把 FlexGrid 导出到 PDF 文件的需求.在这里共享给大家. 当前,ComponentOn ...

  2. GitHub上史上最全的Android开源项目分类汇总 (转)

    GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...

  3. GitHub上史上最全的Android开源项目分类汇总

    今天在看博客的时候,无意中发现了 @Trinea 在GitHub上的一个项目 Android开源项目分类汇总 ,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有参考价值,包括很炫 ...

  4. Android 开源项目分类汇总(转)

    Android 开源项目分类汇总(转) ## 第一部分 个性化控件(View)主要介绍那些不错个性化的 View,包括 ListView.ActionBar.Menu.ViewPager.Galler ...

  5. Android 开源项目分类汇总

    Android 开源项目分类汇总 Android 开源项目第一篇——个性化控件(View)篇  包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView ...

  6. Android开源项目分类汇总【畜生级别】[转]

    Android开源项目分类汇总 欢迎大家推荐好的Android开源项目,可直接Commit或在 收集&提交页 中告诉我,欢迎Star.Fork :) 微博:Trinea    主页:www.t ...

  7. Android开源项目分类汇总[转]

    Android开源项目分类汇总 如果你也对开源实现库的实现原理感兴趣,欢迎 Star 和 Fork Android优秀开源项目实现原理解析欢迎加入 QQ 交流群:383537512(入群理由需要填写群 ...

  8. Android开源项目分类汇总【畜生级别】

    From :http://blog.csdn.net/forlong401/article/details/25459403?c=6c4cd677a617db4655988e41ee081691#t7 ...

  9. Android开源项目分类汇总-转载

    太长了,还是转载吧...今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源项目分类汇总,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有参 ...

随机推荐

  1. mysql查询结果添加序列号

    第一种方法: select   (@i:=@i+1)   as   i,table_name.*   from   table_name,(select   @i:=0)   as   it 第二种方 ...

  2. C# 向Http服务器送出 POST 请求

    //向Http服务器送出 POST 请求 public string m_PostSubmit(string strUrl,string strParam) { string strResult = ...

  3. SOA架构改造简单记录

    前端支持PC.Mobile.H5三个平台 nginx做负载均衡,主备机,keepalived,检测脚本,master和slave切换时完成相关工作: web做集群,web仅仅是web,与后端服务模块采 ...

  4. LoadRunner AJAX TruClient协议Tips and Tricks

    LoadRunner AJAX TruClient协议Tips and Trickshttp://automationqa.com/forum.php?mod=viewthread&tid=2 ...

  5. 【工作代码】复杂 JSON 值替换处理

    总结下最近的工作遇到的点:入参复杂 JSON 层层嵌套,Java 怎么优雅的处理. 一.关于 JSON JSON 是类似 XML 用于存储和交互文本信息.但优于 XML ,其更小,更快,更易懂和解析. ...

  6. ux.form.field.Verify 验证码控件

    //验证码控件 Ext.define('ux.form.field.Verify', { extend: 'Ext.container.Container', alias: ['widget.fiel ...

  7. [转]使用ant让Android自动打包的build.xml,自动生成签名的apk文件(支持android4.0以上的版本)

    在android4.0以后的sdk里那个脚本就失效了,主要是因为 apkbuilder这个程序不见了: 人家sdk升级,我们的脚本也要跟上趟,修改一下喽. 上网一查,大家的文章还停留在我去年的脚本程度 ...

  8. Appium环境抢建

    原文:Appium环境抢建(for web browser test)Android SDKAppium安装 nodejs安装 Appium配置手机下载&运行测试项目Appium是Androi ...

  9. Approvals for EBS 1.4 Now Available

    If you haven't been following the excellent Workflow blog, you might have missed the announcement ab ...

  10. 对象与Byte数组相互转化工具方法

    /** * 对象转byte * @param obj * @return */ private byte[] ObjectToByte(Object obj) { byte[] bytes = nul ...