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 ...
随机推荐
- 6678 emif norflash加载
终于搞定,纪念一下.CCS6很不好用,还是换回CCS5.5吧!
- Linux内核2.6.14源码分析-双向循环链表代码分析(巨详细)
Linux内核源码分析-链表代码分析 分析人:余旭 分析时间:2005年11月17日星期四 11:40:10 AM 雨 温度:10-11度 编号:1-4 类别:准备工作 Email:yuxu97101 ...
- Python-第三方库requests详解(附requests中文官方教程)
转自http://blog.csdn.net/cyjs1988/article/details/73294774 Python+requests中文官方教程: http://www.python-re ...
- FineUI从iis6迁移到iis7.5上遇到的奇葩事情
前天把一台旧服务器上的windows2003+iis6上的fineui项目迁移到了win7+iis7上面来了,没有编译,直接以源码方式运行. 本来运行的好好的,昨天下午在上面用vs2010打开了一下看 ...
- winform GDI基础(四)简单截屏
Bitmap bitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); G ...
- recommonmark
一 简要介绍 recommonmark是个到commonMark文档的兼容性桥,那么什么是commonMark是什么的呢?CommonMark是规范版的markdown,下边是部分commonmark ...
- linux 定制
转载至http://luyafei.blog.51cto.com/1092421/1131532 测试环境: VMware Workstation 8.0 CentOS 6.7 x86_64 1.安装 ...
- SQL Server 附加数据库 错误5210
前言 那天在弄机房的时候,附加数据库总是附加不上,然而将附加数据库文件放到优盘里,就可以附加成功.我也不知道为什么了,但是这次还是别将就了.于是乎,上网查了查原来是权限不够啊.这可怎么办,见下面三种方 ...
- 模仿 spring IOC Annotation版自动装配
spring 有两大核心 IOC和AOP. IOC (inversion of control) 译为 控制反转,也可以称为 依赖注入 ; AOP(Aspect Oriented Programmi ...
- kubernetes相关命令
关闭防火墙 [关闭swap] 执行swapoff -a可临时关闭,但系统重启后恢复 编辑/etc/fstab,注释掉包含swap的那一行即可永久关闭 [关闭SeLinux] sed -i 's/SEL ...