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方面所付出的每一份努力!

Dev Express Report 学习总结(七)Dev Express Reports 常见知识点总结的更多相关文章

  1. Dev Express Report 学习总结(八)Dev Express Reports 常见问题总结

    1. 在新建ASP.NET Dev Express Report时的两种方式: A. 右键Add DevExpress Item->New Item->All->从Web Repor ...

  2. Dev Express Report 学习总结(一) 基础知识总结

    Dev Express,一个非常优秀的报表控件.像其他报表一样,该报表也包括几个主要部分:Report Header,Page Header,Group Header,Detail,Group Foo ...

  3. Dev Express Report 学习总结(六)Dev Express Reports自定义Summary

    在我们使用DevExpress开发报表的过程中,对于页面中复杂的数据合计,我们可能会使用到自定义Summary.下面通过一个例子来进行说明: 首先,我建立了如上图所示的报表页面,其中的数据源来自cla ...

  4. Dev Express Report 学习总结(三)关于子报表Sub-Report的使用

    子报表即在一个Report(主报表)中嵌入另一个Report(子报表),从理论上来讲,任何一个Report都可以作为一个子报表,但在实际使用过程中,只有主报表和子报表构成一对多关系时才会使用子报表.使 ...

  5. Dev Express Report 学习总结(二)关于如何使用Grouping分组

    对于所有的报表工具来说,基本上所有Grouping功能的都很相似.正如前面说到的,Group处于Page Header和Page Footer之间,同时又将Detail包括与其中. 下面还是通过一个例 ...

  6. Dev Express Report 学习总结(五)在分组中使用聚集表达式AggregateExpression

    聚集表达式AggregateExpression主要包括几种:Avg(),Count(),Exists(),Max(),Min(),Single()和Sum().其中对于Sum(),在我看来主要有两种 ...

  7. Dev Express Report 学习总结(四)Dev Express 动态生成XRTable使用总结

    1. XRTableCell常见属性  XRTableCell xrTableCell = new XRTableCell(); A. 字体及字体大小 xrTableCell.Font = new S ...

  8. 从0到1学习node(七)之express搭建简易论坛

    我们需要搭建的这个简易的论坛主要的功能有:注册.登录.发布主题.回复主题.下面我们来一步步地讲解这个系统是如何实现的. 总索引: http://www.xiabingbao.com/node/2017 ...

  9. 《Pro Express.js》学习笔记——Express服务启动常规七步

    Express服务启动常规七步 1.       引用模块 var express=require('express'), compression=require('compression'), bo ...

随机推荐

  1. 你可能不知道的pdf的功能

    可以创建交互式的pdf,比如在pdf页面添加一个按钮, 添加一个文本框. 上篇文章说了pdf有可移植性,这是个非常重要的特性,我就想能否把3d模型放入到pdf中,这样即使对方电脑没有3d软件也可以查看 ...

  2. Person.post请求------详细过程

    首先,在PersonRepository的父类中查找save方法,如下: @Override @TransactionalMethod public <S extends D> S sav ...

  3. 'module' object has no attribute 'contrib'

    Problem solved, turns i had 2 tensorflow versions installed: When launching $python , it used 0.6 ve ...

  4. 自动化打包资源混淆集成python实践----资源混淆

    前面自动化打包资源混淆集成python实践----打包一文讲述了四种打包方案,以及美团打包方案.apk注释添加渠道号方案的实现.这里讲集成资源混淆. 1.资源混淆带来的好处: 1)对资源文件起一定的保 ...

  5. c语言中的const的作用及解析

    有时候我们希望定义这样一种变量,它的值不能被改变,在整个作用域中都保持固定.例如,用一个变量来表示班级的最大人数,或者表示缓冲区的大小.为了满足这一要求,可以使用const关键字对变量加以限定: co ...

  6. linux中的线程同步:生产者、消费者问题

    #include <stdio.h> #include <semaphore.h> #include <unistd.h> #include <stdlib. ...

  7. Android消息传递之EventBus 3.0

    Android消息传递之EventBus 3.0使用详解 http://www.cnblogs.com/whoislcj/p/5595714.html EventBus 3.0进阶:源码及其设计模式 ...

  8. C#中对sqlserver进行增删改查操作(简单易懂)

    1.添加引用using System.Data;using System.Data.SqlData; 2.建立于数据库的连接,建议将它做成一个方法,方便多次利用.string sqlconnectio ...

  9. C#中的线程池使用(一)

    1  线程池的概念 许多应用程序使用多个线程,但这些线程经常在休眠状态中耗费大量的时间来等待事件发生.其他线程可能进入休眠状态,并且仅定期被唤醒以轮询更改或更新状态信息,然后再次进入休眠状态.为了简化 ...

  10. github分支管理

    一. 需要创建的分支 1.master 主分支 2.dev 开发分支 3.bug 修改bug分支 4.release 预发布分支 二.分支使用 1.在master上创建dev,bug,release分 ...