界面控件DevExpress WinForms中文教程:Data Grid - 如何获取汇总值?

DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!

DevExpress WinForms GridControl允许您获取汇总值,以便可以在计算中使用它们或自定义网格视图。在本教程中,您将首先了解如何根据分组汇总值对分组进行格式化,然后您将看到如何获取汇总值并使用它们为页脚单元格指定不同的显示文本。

获取DevExpress WinForms v25.1正式版下载

开始

从一个GridControl开始,它已经有了总汇总和分组汇总。Order Sum列下的页脚单元格显示平均列值,Unit Price列有两个摘要,用于计算列值的最大值和最小值,分组行显示每个组中的记录数。

获取分组汇总值

关闭应用程序,选择View并处理其GridView.RowStyle事件,来根据分组汇总值指定分组行背景颜色。在事件处理程序中,调用GridView.GetGroupSummaryValues方法,此方法返回包含指定分组行的所有摘要值的散列表。由于网格只显示一个分组摘要,因此只需从视图的GridView.GroupSummary集合中获取第一个元素,使用此值作为哈希表的键值来获取汇总项值,如果获得的值大于3,则更改背景颜色。

C#

cs 复制代码
using DevExpress.XtraGrid.Views.Grid;
// ...
private void gridView_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e) {
GridView view = sender as GridView;
if (view == null) return;
if (e.RowHandle >= 0 || view.GroupCount == 0) return;
// Get all group summary values.
Hashtable ht = view.GetGroupSummaryValues(e.RowHandle);
// Access the first group summary.
GridSummaryItem groupSummaryItem = view.GroupSummary[0];
// Obtain the group summary's value.
int childRecordCount = Convert.ToInt32(ht[groupSummaryItem]);
if (childRecordCount > 3)
e.Appearance.BackColor = Color.FromArgb(70, Color.Red);
}

运行应用程序来查看结果,现在突出显示汇总值大于3的组行。

获取总汇总值

下面的示例演示如何获取汇总值:

C#

cs 复制代码
var summaryValue = gridColumn.SummaryItem.SummaryValue;

网格列可以在网格的页脚显示多个摘要,下面的示例演示如何获取所有汇总:

C#

cs 复制代码
List<object> summaryValues = new List<object>();
foreach(DevExpress.XtraGrid.GridSummaryItem summary in gridColumn2.Summary)
summaryValues.Add(summary.SummaryValue);

处理GridView.CustomDrawFooterCell事件,来自定义总汇总显示文本的格式、自定义其外观设置等。

首先使用事件参数获取正在处理的汇总项,然后使用GridSummaryItem.SummaryValue属性获取汇总值。最后生成一个新的显示文本,其中包括汇总类型、列标题和摘要值,并将该文本分配给事件的参数。默认的绘制机制将在事件处理程序执行后调用,它将自动显示修改后的文本。

C#

cs 复制代码
private void gridView_CustomDrawFooterCell(object sender, DevExpress.XtraGrid.Views.Grid.FooterCellCustomDrawEventArgs e) {
GridSummaryItem summary = e.Info.SummaryItem;
// Obtain the total summary's value.
double summaryValue = Convert.ToDouble(summary.SummaryValue);
string summaryText = String.Format("{0} {1} = {2:c2}", summary.SummaryType, e.Column.GetCaption(), summaryValue);
e.Info.DisplayText = summaryText;
}

运行应用程序来查看结果,所有的总汇总都要显示汇总类型,并以列标题和格式化值为目标。

相关推荐
星辰徐哥18 分钟前
Spring Boot 数据导入导出与报表生成
spring boot·后端·ui
追逐时光者32 分钟前
一个基于 .NET 与 Avalonia 构建、面向 TrinityCore 的开源 WoW 数据库编辑器
后端·.net
追逐时光者1 小时前
精选 5 款基于 .NET 开源免费、功能强大的 Windows 系统优化工具
后端·.net
for_ever_love__5 小时前
UI学习:UICollectionView瀑布流
学习·ui·ios·objective-c·cocoa
xiaobai1789 小时前
pytest+playwright实现UI自动化(4)-上夹具fixture
ui·自动化·pytest·playwright
为何创造硅基生物10 小时前
LVGL 妙用 LV_OBJ_FLAG_FLOATING
ui
ANnianStriver12 小时前
PetLumina 04 — 管理后台 UI 全面升级
java·ui·ai编程
123的故事13 小时前
工具分享(2)-NSmartProxy内网穿透工具。
c#·.net·nsmartproxy
ANnianStriver14 小时前
PetLumina 05 — App 端 UI 效果应用
java·ui·ai编程
小小龙学IT14 小时前
Midscene.js:AI驱动的跨平台UI自动化革命
javascript·人工智能·ui