GridControl页脚显示列的汇总数据

gridView4.OptionsView.ShowFooter = true;//启用显示页脚
            
//索引为1的列
gridView4.Columns[1].SummaryItem.DisplayFormat = "{0:0.##}";
gridView4.Columns[1].SummaryItem.FieldName = "TotalMoney";
gridView4.Columns[1].SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum;//求和
//索引为2的列
gridView4.Columns[2].SummaryItem.DisplayFormat = "{0:0.##}";
gridView4.Columns[2].SummaryItem.FieldName = "PayTotalMoney";
gridView4.Columns[2].SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum;//求和
//索引为3的列
gridView4.Columns[3].SummaryItem.DisplayFormat = "{0:0.##}";
gridView4.Columns[3].SummaryItem.FieldName = "UnPayMoney";
gridView4.Columns[3].SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum;//求和
gridView4.CustomDrawFooterCell += new FooterCellCustomDrawEventHandler(this.gridView4_CustomDrawFooterCell);//设置一下对齐方式,通过GridView的CustomDrawFooterCell 事件
//GridControl中的CustomDrawFooterCell事件
private void gridView4_CustomDrawFooterCell(object sender, DevExpress.XtraGrid.Views.Grid.FooterCellCustomDrawEventArgs e)
{
     e.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
}

效果图如下:

如果不想汇总所有数据,而是根据选择汇总,则可以在GridControl中设置勾选框,汇总选中的行数据进行汇总:

设置勾选

Grid Designer - Views - OptionSelection-设置其中的MultiSelect为True,设置MultiSelectMode为CheckBoxRowSelect

选择表格的SelectionChanged事件,代码如下

 private void gridView6_SelectionChanged(object sender, DevExpress.Data.SelectionChangedEventArgs e)
        {
            gridView6.OptionsView.ShowFooter = true;//启用显示页脚
            willPay = 0;//清零数据
            foreach (var item in gridView6.GetSelectedRows())//遍历选中行
            {
                //获取选中行的对象
                IncoiceInfoSum incoice = (IncoiceInfoSum)gridView6.GetRow(item);
                willPay += incoice.ThisPay;//数据累加
            }
            //数据显示
            gridView6.Columns[6].SummaryItem.DisplayFormat = "付款汇总:" + willPay.ToString("0.##") + "";
            gridView6.CustomDrawFooterCell += new FooterCellCustomDrawEventHandler(this.gridView6_CustomDrawFooterCell);//单元格居中显示

            //刷新选中行
            gridView6.RefreshRow(gridView6.FocusedRowHandle);
        }

这样就可以实现自动汇总勾选行的数据,效果如下:

猜你喜欢

转载自blog.csdn.net/Tiger_shl/article/details/81501952