dev Xtragrid控件分组合计总结

本文介绍如何使用Xtragrid实现数据的分组合计总计功能。通过在C#中运用DevExpress库的方法,如Compute和自定义事件gvReport_CustomDrawGroupRow及gvReport_CustomSummaryCalculate,来展示如何对查询出的数据进行合计计算并自定义分组内容的显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Xtragrid分组合计总计

第一步从数据库得到基本数据源,并增加几个空列用于存储合计的数据以及计算出来的合计百分比。

对查询出来的数据进行组装,就是用datatabl的computer方法对数据进行合计和计算

例如:dt.Compute("Sum(SALE_REAL_AMOUNT)", string.Format("UPSIDE_CODE like '{0}%'", tmp_big_type_code));

增加合计的列,要自定义合计的设定summmaryType为customer,

增加事件 gvReport_CustomDrawGroupRow

用于自定义分组内容的显示

private void gvReport_CustomDrawGroupRow(object sender, DevExpress.XtraGrid.Views.Base.RowObjectCustomDrawEventArgs e)

        {

            GridGroupRowInfo GridGroupRowInfo = e.Info as GridGroupRowInfo;

            if (GridGroupRowInfo == null) return;

            if (GridGroupRowInfo.Column.FieldName == "UPSIDE_CODE")

            {

                int i = gvReport.GetDataRowHandleByGroupRowHandle(e.RowHandle);

                DataRow row = gvReport.GetDataRow(i);

                GridGroupRowInfo.GroupText = row["UPSIDE_CODE"] + row["UPSIDE_NAME"].ToString();

            }

          

        }

CustomSummaryCalculate 用于自定义分组合计

private void gvReport_CustomSummaryCalculate(object sender, DevExpress.Data.CustomSummaryEventArgs e)

        {

          

            if (e.IsGroupSummary)

            {

                GridGroupSummaryItem item1=e.Item as GridGroupSummaryItem;

                if (item1 == null) return;

                if (item1.FieldName == "PER_AMOUNT")

                {

                   item1.DisplayFormat = "{0}";

                   e.TotalValue = e.GetValue("PER_SUM_AMOUNT").ToString();

                }

                else if (item1.FieldName == "PRIFT_RATE")

                {

                   item1.DisplayFormat = "{0}";

                   e.TotalValue = e.GetValue("SUM_PRIFT_RATE").ToString();//

                }

            }

          

        }

 

 

转载于:https://www.cnblogs.com/chinasun/p/3173657.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值