使用XtraGrid自定义列计算1 z
Devexpress控件集提供的DataGrid控件,在功能和界面样式上都完爆WinForm的DataGridView控件,以前需要在 DataGridView控件上进行某列的统计,需要在GridView底部重新绘制区域来显示sum,count等计算值。但Devexpress控件 的DataGrid控件,在数据绑定方式上与DataGridView类似,在统计某列合计值得时候提供了自带的合计求值功能,不但是这样,还提供了显示 格式。本文将介绍如何使用自带计算和自定义计算以及自定义显示聚合结果格式来进行说明。
项目工程使用绑定数据方式为DataSet,具体操作流程不再进行说明。
- 使用自带计算方式
首先点击窗体设计器的“Run Designer"按钮,打开属性编译器。
在打开的属性设计器中找到Options->OptionsView->ShowFooter设置为True.
下面选择指定的列进行聚合统计。
选择Columns,在中间部分选择了价格,在右侧栏找到数据->SummaryItem->SummaryType,看到有很多常用的聚合函数显示,选择Sum。注意上边的DisplayFormat,它就是用来设置显示格式的(比如:{0:f2}),也是使用占位符形式。关闭设计器,运行项目
在DataGrid控件底部显示的合计为12.
- 使用自定义计算来统计数据,比如我想在原有的统计结果sum=12的基础上加10。该功能需要使用GridView,(注意是GridView,不是GridControl)的CustomSummaryCalculate事件。在使用之前,还需要将该列的SummaryType 设置成Custom。
直接上代码了:
if (e.IsTotalSummary && e.SummaryProcess == DevExpress.Data.CustomSummaryProcess.Finalize) { GridView view = sender as GridView; if (e.Item == view.Columns["Price"].SummaryItem) { int count = 0; for (int i = 0; i < view.DataRowCount; i++) { object temp = view.GetRowCellValue(e.RowHandle, "Price"); temp = (temp == DBNull.Value || temp == null) ? 0 : temp; count += Convert.ToInt32(temp); } e.TotalValue = count + 10; } }
- 运行项目:
结果很明显增加了10.
- 设置列的显示格式,一般情况下我们需要在合计的部分加上汉字,如:合计:12,这时候就需要使用上面提到的DisplayFormat
将SummaryItem中的DisplayFormat设置为合计:{0}
到此,关于列求和的阐述就到这了,像其它的聚合函数的使用就不再叙述了。通过使用DataGrid自带求列聚合值方式,发现使用起来相当的方便,除了自定义方式,根本不需要编写任何代码。