1. CalculatedField中常见表达式:

  A. For percent: [ValA]* 100 / ([ValA]+[ ValB]);

          PS. Please remreber to set the file type for the CalculatedField to Float

B. Using the Aggregate Expression with grouped data:

[][[^.ColumnName] == [ColumnName] AND [VisitStatus] != 'CANCELLED'].Count()

          PS. ColumnName means the fields used in GroupUnion.

      C. Summary data with Iif function:

       [CategoryPrice] + Iif([DataDetails].Count() > 0, [DataDetails].Sum([Total]), 0)

2. 常见的格式化字符串:

  A. Format String A: {0:0.00}

    Usage: 5->5.00, 5.9 -> 5.90

  B. Format String B: {0:0.00;(0.00);(0.00)}

    Usage: -18 -> (18.00)  0.00 -> (0.00)  -1.25 -> (1.25)

3.  实现如下图所示的合并单元格,仅需设置属性:ProcessDuplicateMode: Merge

  

4.  DataSource/BindingSouce:(Think about the difference between Report DataSource and BindingSouce?)

主要是要多思考一下在动态赋值的过程中,赋值给DataSource和BindingSouce的区别,如何才能让程序的操作更加方便,而又易于实现我们的要求;

5.  关于CalculatedField数据类型的设置:

   在完成了许多DevExpress报表开发后,慢慢地发现了CalculatedField数据类型的重要性。特别是如果在使用到两个值相乘的情况时,如:Price*Qty,在一般情况下,Price为decimal类型而Qty为int,如果在使用CalculatedField对这两个字段相乘而不选择FileType为double的话,最终的结果往往会显示为空!

6. 如何动态改变主/子报表间传递的参数(此处主要是在SubReport控件的BeforePrint事件中进行设置):

 private void XXX_SubRpt_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
 {
   ((XRSubreport)sender).ReportSource.Parameters["SumAmount"].Value = MyValue;
 }

7. 关于多层嵌套(多个DetailReport的GroupBy嵌套)时计算合计:

其一就是使用普通的CalculatedField计算每一层的值,然后由内及外进行逐一的相加,尽量不要进行跨层的相加操作,可能会出现计算结果为NULL的情况;其二是在使用CalculatedField时,一定要设置正确的FieldType(如下图中的Price为Decimal类型,则也需要设置使用到该Price相关的CalculatedField的FieldType),否则结果也有可能为NULL。具体使用如下图所示:

 

8. 关于FormattingRules和CalculatedField的区别:

  CalculatedField主要提供对五种不同类型的数据进行操作,主要包括:Aggregate,Math,Date-Time,string,logical。

对于数据,可以进行加减乘除等各种运算;对于字符串,可以进行拼接,截取,大小写转化等等的操作;对于日期类型,可以进行日期的格式转换,判断等的一系列操作;

除此之外,还提供聚合函数功能。由于可以对多个数据类型进行操作,所以返回值的类型也是多种多样的,可以是值类型,字符串,还可以是Boolean类型;

  FormattingRules主要是针对某个Band进行操作。例如可以通过设置某个条件,来设置某个Band的显示与隐藏。因为涉及到对条件的判断,所以FormattingRules只能返回Boolean类型,如下图所示:

  总结:DevExpress是一个非常优秀的报表开发工具,其Support也非常的敬业和耐心。对于每一次的提问,DevExpress Support都能用最专业的态度给我最优的解决方案,让我每一次的提问都有所收获。当所有的收获不断累积,我也将不断超越自己,也成就了自己在DevExpress方面所付出的每一份努力!

最新文章

  1. [转载]Matlab生成Word报告
  2. 【Python】range和xrange区别
  3. Power BI中的QA功能预览
  4. git在分支上创建目录和文件
  5. [Java] Tcp/udp 简单通信
  6. ldap数据库--ODSEE--卸载
  7. 【设计经验】5、Verilog对数据进行四舍五入(round)与饱和(saturation)截位
  8. 五一劳动节,讲讲NEO智能合约的调试
  9. (链表 set) leetcode 817. Linked List Components
  10. linux cent os 6.5安装Nginx
  11. @ConfigurationProperties + @EnableConfigurationProperties
  12. 安装GDB-ImageWatch ,在QT中查看图像
  13. 64位Ubuntu下配置CP-ABE环境
  14. IE中透明度的读写
  15. 转:stack
  16. Python中的编码问题(encoding与decode、str与bytes)
  17. HDU1003 最大子段和 线性dp
  18. 【Semantic Segmentation】U-Net: Convolutional Networks for Biomedical Image Segmentation 论文解析(转)
  19. python(十一)、线程
  20. halcon连续采集图像

热门文章

  1. DIY的RPM包怎么签名呢 - 笔记
  2. jemalloc和内存管里
  3. maven-排除传递依赖-exclusions
  4. Quartz.Net分布式运用
  5. centos7.4版本安装nmon监控软件
  6. yum(Fedora和RedHat以及SUSE中的Shell前端软件包管理器)命令详解
  7. XCode9: iPhone is busy: Preparing debugger support for iPhone
  8. Pandas——修改DataFrame列名
  9. Spring MVC零配置(全注解)(版本5.0.7)
  10. [Swift实际操作]九、完整实例-(6)创建App欢迎界面