zoukankan      html  css  js  c++  java
  • Studio for Winforms FlexGrid: 创建分类汇总

    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: 

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

    image

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

    Demo 下载:

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

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

  • 相关阅读:
    《软件工程》第十六周学习进度
    个人总结
    构建之法阅读笔记06
    《软件工程》第十五周学习进度
    构建之法阅读笔记05
    《软件工程》第十四周学习进度
    买书问题
    第二阶段团队项目冲刺第十天
    第二阶段团队项目冲刺第九天
    第二阶段团队项目冲刺第八天
  • 原文地址:https://www.cnblogs.com/C1SupportTeam/p/3520530.html
Copyright © 2011-2022 走看看