DevExpress中文网站 > 使用教程 > DevExpress表格怎么设置分组汇总 DevExpress分组小计与总计有什么区别
教程中心分类
DevExpress表格怎么设置分组汇总 DevExpress分组小计与总计有什么区别
发布时间:2026/11/06 15:18:03

  销售明细按部门分组以后,每组有多少金额、整张表累计多少金额,往往需要同时呈现。开发时若只打开表格底部的汇总栏,各部门的小计并不会自动出现;分组行里已有汇总数字,也不代表总计已经配置完成。DevExpress表格怎么设置分组汇总DevExpress分组小计与总计有什么区别,下面以WinForms中的GridControl和GridView为例说明,其他平台的表格控件需要使用对应接口。

  一、DevExpress表格怎么设置分组汇总

 

  先让数据形成分组,再配置组内的统计项目。示例使用Dept作为部门字段、Amount作为数值类型的金额字段,名称应替换为项目中的实际字段名。

 

  1、设置分组字段

 

  分组汇总依赖已有的分组关系。只是把相同部门的记录排在一起,还没有建立表格分组。

 

  ①在Visual Studio窗体设计器中选中【GridControl】,通过控件任务菜单中的【Run Designer】打开设计器。

 

  ②进入【Columns】页面,选中部门列,将【FieldName】设为【Dept】。

 

  ③将部门列的【GroupIndex】设为【0】,运行程序,确认明细按部门形成分组。

 

  2、添加金额求和项目

 

  ①回到表格设计器,进入【Main】→【Group Summary Items】,点击【Add】添加汇总项。

 

  ②将该项的【FieldName】设为【Amount】,将【SummaryType】设为【Sum】。

 

  ③将【DisplayFormat】填写为【小计:{0:n2}】,保存设置。

 

  FieldName决定参与计算的数据字段,不应填写“销售金额”这类显示标题,除非数据源字段本身就使用这个名称。Sum适用于金额求和,记录数量则应使用Count,平均金额使用Average。

 

  3、让小计显示在组尾

 

  ①选中刚添加的汇总项,将【ShowInGroupColumnFooter】指定为绑定【Amount】字段的金额列。

 

  ②在【属性】窗口中选中对应【GridView】,展开【OptionsView】,将【GroupFooterShowMode】设为【VisibleAlways】。

 

  ③运行程序,展开和折叠部门分组,检查组尾金额列下方的小计。

 

  组汇总可以放在分组行,也可以放在组尾。这里指定组尾显示列,让金额与明细列对齐。若没有指定组尾列,汇总可能出现在分组行中,不能仅凭组尾空白判断没有计算。

 

  4、同时添加表格总计

 

  ①在【GridView】的【OptionsView】中,将【ShowFooter】设为【True】。

 

  ②选中金额列,展开【SummaryItem】,将【FieldName】设为【Amount】、【SummaryType】设为【Sum】。

 

  ③把【DisplayFormat】设为【总计:{0:n2}】,保存并运行程序。

 

  ④查看表格底部的【视图页脚】,确认总计与各部门的小计分别显示。

 

  二、DevExpress分组小计与总计有什么区别

 

  两者可以采用相同的求和函数,差别在于参与计算的记录范围。下面的比较以未筛选、未设置自定义汇总规则的普通绑定表格为前提。

  1、分组小计按各组计算,总计按整体计算

 

  ①准备测试数据,在【Dept】中填写两个部门,在【Amount】中分别填写甲部门的【100】、【200】和乙部门的【900】。

 

  ②将【GroupSummary】中的金额汇总项设为【Sum】,运行程序,核对两个部门的小计。

 

  ③将金额列的【SummaryItem】也设为【Sum】,核对表格底部总计。

 

  这组数据中,甲部门小计为300,乙部门小计为900,总计为1200。小计回答某个部门累计多少,总计反映参与统计的全部明细累计多少。折叠分组只改变明细的展示状态,不会把该组记录从统计范围中删除。

 

  2、平均值不能直接把各组结果再平均

 

  人数或订单数不同的分组,直接平均各组均值,容易得到偏差。总计使用Average时,应按参与计算的明细值理解。

 

  ①保留上述测试数据,将金额分组汇总项的【SummaryType】改为【Average】。

 

  ②将金额列【SummaryItem】中的【SummaryType】也改为【Average】,运行程序。

 

  ③核对【分组行】或【组尾】中的均值,再与【视图页脚】中的整体均值比较。

 

  甲部门均值是150,乙部门均值是900,全部三条明细的均值为400。把150与900再平均会得到525,与整体均值不同。总计也不应直接累加各组的平均值,统计范围和计算方法需要一起理解。

 

  三、DevExpress汇总结果不显示或不一致怎么检查

 

  出现问题时,可以先看汇总项目是否存在,再检查显示区域和计算字段。没有数字与数字不对,排查方向并不相同。

 

  1、检查小计和总计各自的显示开关

 

  ①选中【GridView】,确认【OptionsView】中的【ShowFooter】为【True】,检查总计区域。

 

  ②检查【GroupFooterShowMode】,排查时可设为【VisibleAlways】。

 

  ③回到【Group Summary Items】,确认汇总项已经添加,并检查【ShowInGroupColumnFooter】指定的列。

 

  ShowFooter控制表格底部的总计区域,GroupFooterShowMode控制组尾,两者不能互相替代。如果采用VisibleIfExpanded,折叠分组后组尾不显示属于该设置的表现,并不代表小计被清除了。

 

  2、核对计算字段与显示格式

 

  ①在金额列的【属性】中检查【FieldName】,与分组汇总项、总计项的【FieldName】逐一对照。

 

  ②检查数据源中的【Amount】,确认保存的是数值,排除金额被拼接成带单位文本的情况。

 

  ③检查汇总项的【SummaryType】,排除误设为【None】或其他统计函数。

 

  ④将【DisplayFormat】临时改为【{0}】,比较未附加格式的结果。

 

  显示位置与计算字段可以分别配置,某列下方的数字未必取自该列字段。显示格式还可能造成四舍五入差异,汇总项设为两位小数,并不代表原数据也只有两位小数。

 

  3、核对筛选和选中行统计范围

 

  同一个表格在不同操作后出现不同总计,应先确认参与统计的记录是否发生变化,不能只对照当前画面中露出的几行。

 

  ①记录当前筛选条件,清除表格中的【筛选条件】,再核对汇总结果。

 

  ②启用多行选择的表格中,检查汇总项的【Mode】,确认使用【AllRows】还是其他选择范围。

 

  ③使用同一组测试数据、相同筛选条件和汇总模式,重新比较【GroupSummary】与【SummaryItem】的结果。

  总结

 

  分组小计便于观察部门、客户或类别内部的数据,总计用于呈现整体统计结果。把字段、函数和记录范围对应清楚,汇总数字才有可比较的含义。理解DevExpress表格怎么设置分组汇总DevExpress分组小计与总计有什么区别,也能减少把显示问题当成计算错误、把分组均值当成整体均值的误判。希望这些设置与核对方法能为大家开发业务表格提供参考,相关需求欢迎交流。

176 5129 0128