聚集表达式AggregateExpression主要包括几种:Avg(),Count(),Exists(),Max(),Min(),Single()和Sum()。其中对于Sum(),在我看来主要有两种用法,一种是Group时的合计,另一种是整个页面某个列的值的合计。但是对于Count(),由于以前对DevExpress的了解不足,所以对Count()也不是很了解。

  今天就是在开发报表的过程中遇到了一个问题,经过DevExpress支持的帮助,通过Count()完成了较为复杂的功能。具体情况:我有三条记录,如下图1所示,想生成如图2所示的报表内容,怎么做呢?

  如果放在以前,我可能需要创建2个CalculatedField,并且分别添加表达式内容:Iif([VisitStatus]=='VISITED',1,0) 和Iif([VisitStatus]=='CANCELLED',1,0),然后再使用Sum()与Group结合的方式来实现,但有了Count()情况便有了不同,具体实现如下:

  首先,我们也需要建立两个CalculatedField,并且分别添加表达式内容:[][[^.ClinicName] == [ClinicName] AND [VisitStatus] == 'VISITED'].Count()和[][[^.ClinicName] == [ClinicName] AND [VisitStatus] == 'CANCELLED'].Count(),从中我们可以看到,具体的数量已经通过遍历ClinicName并且限制VisitStatus实现了,所以无需向以前一样再使用Sum()。

  通过以上对比,方案1可以作为方案2的一个备用,两个的相同点都是仅在GroupHeader中进行操作,并且都可以实现最终结果,但两者还是有着些许的区别,特别是在使用GroupBy时,具体区别如下所示:

具体聚集表达式AggregateExpression的具体用法参见以下官网链接:

How to: Calculate an Aggregate Function

最新文章

  1. [WPF]WPF Data Virtualization和UI Virtualization
  2. mongodb搭建和基本语法
  3. IPC---共享内存
  4. Bitmap vs 2Bitmap的实现
  5. JAVA 网格布局管理器
  6. python基础:os模块中关于文件/目录常用的函数使用方法
  7. Android的string-array数据源简单使用
  8. oracle 11g卸载方法
  9. SQL分页存储过程(不支持多表联合查询,不支持多字段排序)
  10. C#获取键盘和鼠标操作的时间的类
  11. 其他应用和技巧-用JS实现的抽奖程序
  12. sql2000数据库误删除后自行恢复二次覆盖成功恢复
  13. Centos7上安装使用locate
  14. vue组件详解(二)——使用props传递数据
  15. WPF DesiredSize & RenderSize
  16. vue2.4+vue-cli+webpack history模式打包后 刷新404
  17. Django之动态验证码的生成
  18. 转:sock_ev——linux平台socket事件框架(event dispatcher) .
  19. MySQL优化之如何了解SQL的执行频率
  20. java stream 处理分组后取每组最大

热门文章

  1. Linux 编译安装内核
  2. 数字图像处理实验(2):PROJECT 02-02, Reducing the Number of Gray Levels in an Image 标签: 图像处理MATLAB 2017-
  3. scala的map的操作
  4. SpringMVC @RequestBody 自动转json Http415错误
  5. APP 市场需求网址
  6. Grideview总结
  7. Core中间件——访问记录
  8. Spring Boot 学习系列(02)—使用热部署,提升开发效
  9. JS万金油的类型判断方法
  10. Mybatis+maven自动构建dao、mapper、model