C# WPF GridControl数据汇总

概述

    dev的GridControl自带数据汇总的功能,想对表格数据在底部做一个简单的统计,百度了一下找了很多个博客都没啥用,最终果断查看dev官网实现,官网地址:

https://docs.devexpress.com/WPF/7354/controls-and-libraries/data-grid/data-summaries

介绍

    GridControl允许您显示有关行组或单个数据列的摘要信息。例如,您可以显示记录数、最小值或最大值等。此摘要信息称为数据摘要。

b587e8dc420249eb1d8df97855cab43a.png

总摘要是对视图中的所有数据行计算的聚合函数的值。汇总显示在“汇总”面板和“固定汇总”面板中。

以下列表描述了两个面板之间的区别:

无论相应列的位置和可见性如何,“固定摘要”面板中的值始终在屏幕上可见。面板将摘要向左或向右对齐。

摘要面板中的值显示在相应的列中。

74931abf1bbfdbf9d62a1ffcf87e3a76.png

设置DataViewBase.ShowFixedTotalSummary属性设置为true以显示Fixed Summary面板。

使用DataViewBase.TotalSummaryPosition属性以显示摘要面板并指定其位置。

ffcd5b1bbf23cc5030b8ca36b452c49e.png

如果要在“固定摘要”面板中显示相应的值,请将摘要的“对齐”属性设置为“左”或“右”。否则,该值将显示在摘要面板中。

在XAML中

按照以下步骤在XAML中创建汇总:

将GridSummaryItem对象添加到GridControl.TotalSummary集合。

指定SummaryItemBase.FieldName和SummaryItemBase.SummaryType属性。

XAML

<dxg:GridControl ...><dxg:GridControl.TotalSummary><dxg:GridSummaryItem SummaryType="Count" Alignment="Left"DisplayFormat="Total Users: {0}"/><dxg:GridSummaryItem FieldName="Age" SummaryType="Min"/><dxg:GridSummaryItem FieldName="Age" SummaryType="Max"/></dxg:GridControl.TotalSummary><dxg:GridControl.View><dxg:TableView TotalSummaryPosition="Bottom" ShowFixedTotalSummary="True"/></dxg:GridControl.View>
</dxg:GridControl>

In Code

C#

using DevExpress.Data;
using DevExpress.Xpf.Grid;// Add summaries to the GridControl's Total Summary collection.
grid.TotalSummary.AddRange(new List<GridSummaryItem>() {// Create summary objects and specify their settings.new GridSummaryItem() {SummaryType = SummaryItemType.Count,Alignment = GridSummaryItemAlignment.Left,DisplayFormat = "Total Users: {0}"},new GridSummaryItem() {FieldName = "Age",SummaryType = SummaryItemType.Min},new GridSummaryItem() {FieldName = "Age",SummaryType = SummaryItemType.Max}
});

Use the AddRange method to add multiple summaries to the collection.

计算所选内容的摘要

GridControl可以根据选定的行和单元格计算摘要。若要计算所选行/单元格的摘要,请设置SummaryItemBase.CalculationMode属性设置为SelectedRows或Mixed:

63571456ae7e79242bc6d38b0db372f5.png

XAML

<dxg:GridControl ...><!-- --><dxg:GridControl.View><dxg:TableView TotalSummaryPosition="Bottom"/></dxg:GridControl.View><dxg:GridControl.TotalSummary><!-- The summary calculated against selected rows --><dxg:GridSummaryItem FieldName="Total" SummaryType="Sum" CalculationMode="SelectedRows"DisplayFormat="Selection Total=${0:N}"/><!-- The summary calculated against all rows --><dxg:GridSummaryItem FieldName="Total" SummaryType="Sum" DisplayFormat="Total=${0:N}"/></dxg:GridControl.TotalSummary>
</dxg:GridControl>

SummaryItemBase。CalculationMode属性允许您定义以下摘要计算机制:

AllRows

汇总值是根据所有行计算的。

SelectedRows

汇总值是根据所选行计算的。

Mixed

如果所选行的数量多于一行,则根据所选行计算汇总值;否则,针对所有行。

您也可以使用DataViewBase.SummaryCalculationMode属性将指定的计算模式应用于所有GridControl摘要。

实例

<dxg:GridControl AutoGenerateColumns="AddNew" EnableSmartColumnsGeneration="True"  AllowLiveDataShaping="True"    cal:Message.Attach="[Event SelectedItemChanged] = [Action GridControl_SelectedItemChanged($source,$event)];" ItemsSource="{Binding MemorandumShowList}" SelectedItem="{Binding SelectedItem}" Height="500" Foreground="Black" Margin="5,10,5,10" ><!--<dxg:GridControl.GroupSummary><dxg:GridSummaryItem SummaryType="Count" /></dxg:GridControl.GroupSummary>--><dxg:GridControl.TotalSummary><!--<dxg:GridSummaryItem SummaryType ="Average" FieldName="Borrower" DisplayFormat = "平均值:{0:f4}" Alignment="Right"/>--><dxg:GridSummaryItem SummaryType ="Sum" FieldName="Borrower" DisplayFormat = " 借方:{0:N}" Alignment="Right"/><dxg:GridSummaryItem SummaryType ="Sum" FieldName="Lender" DisplayFormat = " 贷方:{0:N}" Alignment="Right"/><!--<dxg:GridSummaryItem SummaryType="Count" DisplayFormat = " 计数:{0:0}" Alignment="Right"/>--></dxg:GridControl.TotalSummary><dxg:GridControl.View><dxg:TableView ShowTotalSummary="True" ShowFixedTotalSummary="True"AllowMoveColumnToDropArea="False" AllowGrouping="False" AutoExpandOnDrag="False" ShowDragDropHint="False" ShowGroupPanel="False" AllowColumnMoving="False" AllowResizing="False" Foreground="Black"RowIndicatorContentTemplate="{StaticResource rowIndicatorContentTemplate}" ><dxg:TableView.RowStyle><Style TargetType="{x:Type dxg:RowControl}"><Setter Property="dxg:GridViewBase.Background" Value="{Binding DateTime,Converter={StaticResource RowColorConverter}}"/><Style.Triggers><Trigger Property="dxg:GridViewBase.IsFocusedRow" Value="True"><Setter Property="Background" Value="Gray" /></Trigger></Style.Triggers>
</Style></dxg:TableView.RowStyle></dxg:TableView></dxg:GridControl.View><dxg:GridColumn  Header="摘要" FieldName="Summary"   MinWidth="100"/><dxg:GridColumn  Header="科目" FieldName="Subject"  MinWidth="100"/><dxg:GridColumn  Header="核算维度" FieldName="AccountingDimension" MinWidth="100" /><dxg:GridColumn  Header="借方" FieldName="Borrower"  MinWidth="100"/><dxg:GridColumn  Header="贷方" FieldName="Lender"  MinWidth="100"/><dxg:GridColumn FieldName="Operation" AllowSorting="True" Header="操作" Width="70"><dxg:GridColumn.CellTemplate><DataTemplate><!--<dxe:ButtonEdit ShowText="False" AllowDefaultButton="False"><dxe:ButtonInfo Name="BtnDelete_Click" GlyphKind="Cancel" ToolTipService.ToolTip="删除" CommandParameter="{Binding id}" Command="{Binding BtnDelete_Click}"/><dxe:ButtonInfo Name="BtnAdd_Click" GlyphKind="Plus" ToolTipService.ToolTip="添加" CommandParameter="{Binding id}" Command="{Binding BtnAdd_Click}" /></dxe:ButtonEdit>--><StackPanel Orientation="Horizontal"><dx:SimpleButton Name="BtnAdd" Glyph="/Images/add.png"cal:Message.Attach="[Event Click]=[Action BtnAdd_Click]" /><dx:SimpleButton Name="BtnDelete" Glyph="/Images/remove.png" cal:Message.Attach="[Event Click]=[Action BtnDelete_Click]"/></StackPanel></DataTemplate></dxg:GridColumn.CellTemplate></dxg:GridColumn></dxg:GridControl>

结果显示

d80d7db59b2810e298d31bf7e1d93871.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/456892.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

唐嫣、刘诗诗、杨幂齐聚春晚舞台,再现仙剑三美惊艳绝伦的魅力。

♥ 为方便您进行讨论和分享&#xff0c;同时也为能带给您不一样的参与感。请您在阅读本文之前&#xff0c;点击一下“关注”&#xff0c;非常感谢您的支持&#xff01; 文 |猴哥聊娱乐 编 辑|徐 婷 校 对|侯欢庭 近日&#xff0c;娱乐圈的目光将聚焦于三位璀璨的女星——唐嫣…

NLP_神经概率语言模型(NPLM)

文章目录 NPLM的起源NPLM的实现1.构建实验语料库2.生成NPLM训练数据3.定义NPLM4.实例化NPLM5.训练NPLM6.用NPLM预测新词 NPLM小结 NPLM的起源 在NPLM之前&#xff0c;传统的语言模型主要依赖于最基本的N-Gram技术&#xff0c;通过统计词汇的共现频率来计算词汇组合的概率。然而…

C# WinForm开发系列 - DataGridView

原文地址&#xff1a;https://www.cnblogs.com/peterzb/archive/2009/05/29/1491891.html 1.DataGridView实现课程表 testcontrol.rar 2.DataGridView二维表头及单元格合并 DataGridView单元格合并和二维表头.rar myMultiColHeaderDgv.rar 3.DataGridView单元格显示GIF图片 …

深入探究:JSONCPP库的使用与原理解析

君子不器 &#x1f680;JsonCPP开源项目直达链接 文章目录 简介Json示例小结 JsoncppJson::Value序列化Json::Writer 类Json::FastWriter 类Json::StyledWriter 类Json::StreamWriter 类Json::StreamWriterBuilder 类示例 反序列化Json::Reader 类Json::CharReader 类Json::Ch…

宝塔面板Node项目带参启动配置方法

宝塔面板Node项目带参启动配置方法 ​0x00 缘起​0x01 解决方法​0x02 系统信息​0x03 后记​0x00 缘起 编写的Nest项目根据启动时的环境变量加载不同的数据库配置, 在CentOS 7的终端中, 使用如下命令就可以启动成功: export NODE_ENV=production; node dist/main可是使用宝塔…

docker部署自己的网站wordpress

目录 安装 1.创建目录 2.创建并启动mysql 3.创建并启动wordpress 使用 1.设置语言 2.设置基础信息 3.首页 安装 1.创建目录 mkdir -p /opt/wordpress/{db,data} 2.创建并启动mysql docker run -d --name my_mysql --restart always -e MYSQL_ROOT_PASSWORD123456 -e …

嵌入式——CAN(1)

目录 一、初识CAN 1. 介绍 2. CAN总线特点 &#xff08;1&#xff09;多主控制 &#xff08;2&#xff09;消息的发送 &#xff08;3&#xff09;系统的柔软性 &#xff08;4&#xff09;通信速度 &#xff08;5&#xff09;错误检测&错误通知&错误恢复功能 &…

算法——二分查找算法

1. 二分算法是什么&#xff1f; 简单来说&#xff0c;"二分"指的是将查找的区间一分为二&#xff0c;通过比较目标值与中间元素的大小关系&#xff0c;确定目标值可能在哪一半区间内&#xff0c;从而缩小查找范围。这个过程不断重复&#xff0c;每次都将当前区间二分…

如何使用Docker部署DashDot服务器仪表盘并结合cpolar实现公网访问

&#x1f4d1;前言 本文主要是使用Docker部署DashDot服务器仪表盘并结合cpolar实现公网访问的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️** &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页放风…

ES6扩展运算符——三个点(...)用法详解

目录 1 含义 2 替代数组的 apply 方法 3 扩展运算符的应用 &#xff08; 1 &#xff09;合并数组 &#xff08; 2 &#xff09;与解构赋值结合 &#xff08; 3 &#xff09;函数的返回值 &#xff08; 4 &#xff09;字符串 &#xff08; 5 &#xff09;实现了 Iter…

OCR文本纠错思路

文字错误类别&#xff1a;多字 少字 形近字 当前方案 文本纠错思路 简单&#xff1a; 一、构建自定义词典&#xff0c;提高分词正确率。不在词典中&#xff0c;也不是停用词&#xff0c;分成单字的数据极有可能是错字&#xff08;少部分可能是新词&#xff09;。错字与前后的…

【leetcode】深搜、暴搜、回溯、剪枝(C++)1

深搜、暴搜、回溯、剪枝&#xff08;C&#xff09;1 一、全排列1、题目描述2、代码3、解析 二、子集1、题目描述2、代码3、解析 三、找出所有子集的异或总和再求和1、题目描述2、代码3、解析 四、全排列II1、题目解析2、代码3、解析 五、电话号码的字母组合1、题目描述2、代码3…