2024年终活动

DevExpress控件使用交流,DevExpress中国社区Dev联系电话 联系电话:023-68661681

[测评]DevExpress XtraReport与微软RDLC报表

来源:   发布时间:2017-11-08   浏览:4031次

在开发程序时,不可避免会涉及一些报表内容。如果是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)

本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [https://www.devexpresscn.com/]
本文地址:https://www.devexpresscn.com/post/963.html

相关产品: DevExpress Universal Subscription,

扫码咨询
电话咨询
023-68661681
返回
顶部