在开发程序时,不可避免会涉及一些报表内容。如果是Winform的报表, DevExpress控件组的XtraReport和微软的RDLC报表使用频率都相对较高。本文主要介绍这两种不同类型报表的使用,以及对比它们的差异性,仅供参考。
一、 DevExpress XtraReport使用体验
1. 报表界面展示
2. 创建新报表 为了实现这个报表模块,先使用VS的工具创建一个报表组件对象。
在使用前,需要设置好报表组件的各个显示模块,报表上下空间部分(TopMargin/BottomMargin),这两个部分用来调整上下的边线的;
然后每个报表有头部内容和底部内容的区分,ReportHeader一般用来放置表格头部字段显示的,明细的内容包括展示列表的明细信息。
3. 设计报表控件和数据源管理
在VS左边的工具箱里面有响应的XtraReport控件,拖动到报表界面里面就可以进行绘制设计了。
4. 特殊字段的处理
在报表的设计过程中,我们一般会碰到各种不同的字段,它不是简单的文本信息,可能是日期,也可以是统计值,计算值等。打印时间,只需要增加一个XRPageInfo,然后设置里面的值就可以了,这个有点类似RDLC的参数值。而记录数的统计设计如下所示,主要是通过千制的方式显示,调用Count函数处理。
同样,总公里数,是统计整个报表里面记录的公里数操作,调用SUM函数处理。
设计好Xtra报表后,我们就可以程序里面,直接调用进行加载处理即可,代码如下所示。
private void PrintReport() { string where = GetConditionSql(); List<CarApplyInfo> list = BLLFactory<CarApply>.Instance.Find(where); FrmHistoryReport report = new FrmHistoryReport();
我们主要获取数据源,并绑定数据源到对应的报表组件上,然后调用ReportPrintTool 进行展现即可,代码非常简洁,只是设计过程麻烦一些。
二、 RDLC报表使用体验
1. 报表界面展示
2. RDLC的设计效果
由于RDLC它是一个独立的XML文件,它的描述全部在一个XML里面,因此在设计时,只是对XML文件进行处理,VS给我们提供了一个设计器及进行设计而已。 在RDLC的设计视图里面,我们可以看到报表数据里面,包括一些预定义的数据,以及我们添加进去的数据源。
3. 报表特殊元素的处理
RDLC报表,也有一些如打印时间,分页数据等,是需要特殊的处理了,打印时间是使用报表数据里面的【内置字段】项目。可以通过自定义的格式内容对记录总数和统计值进行处理。对于一些特殊的显示格式,需要额外正确设置,例如日期的格式设置。
4. 报表的调用处理
对于报表的加载只需要简单的设置属性,然后调用即可,代码如下:
private void PrintRDLCReport() { string where = GetConditionSql(); List<CarApplyInfo> list = BLLFactory<CarApply>.Instance.Find(where); foreach (CarApplyInfo info in list) { info.Data1 = info.Status.ToString();//转换枚举类型描述
三、 XtraReport报表&RDLC报表差异对比
1. 报表最终实现效果相似,但DevExpress XtraReport是把它集成到DLL里面,类似编译的窗体文件一样了;而RDLC报表本身是一个独立的文件,在发布时需要注意要把它带上,但是又有较好的通用性。
2. 对于XtraReport的字段内容展示,默认就是调用了ToString()的函数处理,因此类似日期、枚举类型,都不需要怎么样设置,就可以正常显示,但是RDLC报表设计里面,我们需要为每种字段设置好对应的格式,枚举类型好像解析还是会转换为整形,因此需要在数据源级别进行转换,否则显示不出来。
3. 对于自定义函数方面,XtraReport提供了较好的设计界面,能够很大程度减少出错的机会;RDLC则提供了弹性化的操作,提供了很多函数进行参考,需要自己添加表达式,不过在编译的时候,能够检查出现的错误。
(测评内容参考自:伍华聪 http://www.iqidi.com)
注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。