Dev Express Report 学习总结(七)Dev Express Reports 常见知识点总结
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 常见知识点总结的更多相关文章
- Dev Express Report 学习总结(八)Dev Express Reports 常见问题总结
1. 在新建ASP.NET Dev Express Report时的两种方式: A. 右键Add DevExpress Item->New Item->All->从Web Repor ...
- Dev Express Report 学习总结(一) 基础知识总结
Dev Express,一个非常优秀的报表控件.像其他报表一样,该报表也包括几个主要部分:Report Header,Page Header,Group Header,Detail,Group Foo ...
- Dev Express Report 学习总结(六)Dev Express Reports自定义Summary
在我们使用DevExpress开发报表的过程中,对于页面中复杂的数据合计,我们可能会使用到自定义Summary.下面通过一个例子来进行说明: 首先,我建立了如上图所示的报表页面,其中的数据源来自cla ...
- Dev Express Report 学习总结(三)关于子报表Sub-Report的使用
子报表即在一个Report(主报表)中嵌入另一个Report(子报表),从理论上来讲,任何一个Report都可以作为一个子报表,但在实际使用过程中,只有主报表和子报表构成一对多关系时才会使用子报表.使 ...
- Dev Express Report 学习总结(二)关于如何使用Grouping分组
对于所有的报表工具来说,基本上所有Grouping功能的都很相似.正如前面说到的,Group处于Page Header和Page Footer之间,同时又将Detail包括与其中. 下面还是通过一个例 ...
- Dev Express Report 学习总结(五)在分组中使用聚集表达式AggregateExpression
聚集表达式AggregateExpression主要包括几种:Avg(),Count(),Exists(),Max(),Min(),Single()和Sum().其中对于Sum(),在我看来主要有两种 ...
- Dev Express Report 学习总结(四)Dev Express 动态生成XRTable使用总结
1. XRTableCell常见属性 XRTableCell xrTableCell = new XRTableCell(); A. 字体及字体大小 xrTableCell.Font = new S ...
- 从0到1学习node(七)之express搭建简易论坛
我们需要搭建的这个简易的论坛主要的功能有:注册.登录.发布主题.回复主题.下面我们来一步步地讲解这个系统是如何实现的. 总索引: http://www.xiabingbao.com/node/2017 ...
- 《Pro Express.js》学习笔记——Express服务启动常规七步
Express服务启动常规七步 1. 引用模块 var express=require('express'), compression=require('compression'), bo ...
随机推荐
- 硬链接与软链接有什么不同(ln)
Linux建立的链接有两种方式 如Windows系统下的快捷方式(.lnk)相似的东东 分为硬链接(Hard Link)和软链接(Symbolic Link)也叫符号链接 默认情况下,ln命令产生硬链 ...
- Java-马士兵设计模式学习笔记-迭代器模式-模仿Collectin ArrayList LinckedList
Java Iterator模式 Java Iterator模式, 模仿Collectin ArrayList LinckedList 一.有如下几个类 1.接口Collection.java 2.接口 ...
- EZOJ #79
传送门 分析 在经过若干次操作之后一定会产生一堆环 而我们又发现从一个点到另一个点实际可以经过所有环 于是问题就转换成了$k_1s_1 + k_2s_2 + ... + len = t$ 其中$s_i ...
- Entity Framework Tutorial Basics(9):Entity Relationships
这篇前面已经转载出来了,地址:http://www.cnblogs.com/purplefox2008/p/5646466.html
- Entity Relationships
Entity Relationships: Here, you will learn how entity framework manages the relationships between en ...
- Android开发环境搭建及HelloWorld
在开始Android开发之旅启动之前,首先要搭建环境,然后创建一个简单的HelloWorld.本文的主题如下: 1.环境搭建 1.1.JDK安装 1.2.Eclipse安装 1.3.Android S ...
- (树)判断二叉树是否为BST
题目:判断一颗二叉树是否为BST. 思路:其实这个问题可以有多个解决方法. 方法一:递归解决.根据BST的特性.左边的小于根节点的值,右边的大于根节点的值.并且对于每一棵子树都是如此.所以我们可以直接 ...
- Java分层概念(转)
Java分层概念(转) 对于分层的概念,似乎之间简单的三层,多了,就有点难以区分了,所以收藏了这个. ervice是业务层 action层即作为控制器 DAO (Data Access Object) ...
- Ubuntu中安装LAMP
现在,很多人可能已经用上ubuntu了,大家可能花了大量时间在ubuntu的美化上,这无可厚非,但是,ubuntu应该给我们的工作和学习带来更多的便利和方便.ubuntu作为linux,为我们提供了强 ...
- [51nod1190]最小公倍数之和V2(莫比乌斯反演)
题解 传送门 题解 我是真的不明白这玩意儿是怎么跟反演扯上关系的-- 首先 \[ \begin{align} ans &=b\sum_{d|b}{1\over d}\sum_{i=a}^{b} ...