多语言展示
当前在线:1924今日阅读:103今日分享:49

RDLC表报的使用方法

RDLC简介 VS .NET开发中,用什么做报表? 可能的回答是Crystal Report,自.NET“紧密”集成Crystal Report后,这可能是开发人员比较单一的选择。但是,这种集成似乎并不非常紧密,网络上充斥着关于使用Crystal Report的抱怨,太复杂也许是其最为令人诟病的地方,自定义性比较差也不能为程序员们所容忍。 当然,必须承认Crystal Report的功能还是非常强大的,被Business Object收购以后,商业职能的成分也在逐渐增加,也形成了一定规模的用户群。 Visual Studio .NET进入2005版本以后,Crystal Report与IDE的结合更“紧密”了,至少我们看不到那个讨厌的注册窗口了。但是,Microsoft似乎并不容忍在自己的超级工具中竟然没有报表工具,于是Report Viewer Control出现了,我把它的报表称为RDLC报表。 在VS .NET 2005之前,SQL Server Reporting Services中已经提供了一种被称为报表定义语言(Report Definition Language, RDL)的语言;在VS .NET 2005中,Microsoft提供了针对这种报表的设计器,并提供了在WinForm和WebForm中使用这种报表的能力。Microsoft将这种报表的后缀定为RDLC,RDL仍然是Report Definition Language的缩写,那么C代表什么呢?C代表Client-side processing,凸显了它的客户端处理能力。 这种报表的易用性和可定制性让我们完全有理由放弃Crystal Report,让我们来看看它的强大功能吧:1、简单易用的控件,特别是Table控件,非常方便字段在报表上的排列;2、灵活的可定制性,用XML来描述一个报表相关的一切,不用说了吧?3、高度可编程性,在你的项目中,甚至不需要有一个报表文件,通过代码就可以实现报表生成、预览和打印等一系列操作;4、支持DrillThrough数据钻取功能;5、导出的Excel文件格式非常完美,任何其它报表在这方面都不能与之比拟,而且并不需要安装Excel;……[偷偷懒,其实我并不擅长总结某某的特点,我只能从实际经验中得到一点点结论,而且我也不原意去抄袭帮助中的New Features,呵呵……] 在以后的几篇随笔中,我将结合最近一段时间使用RDLC报表的经验继续探讨相关的一些问题,大致内容包括:报表设计器的使用、LocalReport的一些相关操作,如何自定义纸张等等,欢迎大家提出参考意见。 需要说明的是,现在关于VS. NET 2005中的Report Viewer Control的内容非常少,我只能按照自己的理解来说一些东西,这其中肯定会有一些偏差,欢迎各位的批评指正。另外,我所涉及的内容都是关于LocalReport的,对于ServerReport没有进行研究。 下面是RDLC做出控件的效果图:
工具/原料

Visual Studio .NET

方法/步骤
1

建立数据源 启动VS2005新建一个窗体项目,命名为TestProj 在左边的窗体内选择“添加新数据源”或在菜单上操作“添加新数据源”: 选择后出现对话窗体,选择“数据库”,进入“下一步”: 本数据源以SqlServer2000所提供的Northwind数据库为例,因此在数据库内选择驱动程序为SqlServer,具体操作视所用数据库而定(如果连接为Oracle,建议用Oracle所提供的ODP for .NET 选择数据源后,指定数据库文件,并进行测试,如果连接不通,请检查你的软件设置。 进行下一步,至显示出库文件内的表及视图,然后打开表,并选择其中的Employees,选择完成。 在数据源窗口中显示出所选择表及表内的字段,以备使用。 同时在资源管理器中,也可以看到新增加的数据文件。

2

报表浏览器 在新建的窗体内,放入报表浏览控件: 此报表浏览控件集成了报表查看及打印预览的功能,可直接输出至打印机,也可直接输出至Excel文件或PDF文件,对于喜欢看Excel表格的客户来说,这个报表控件非常不错。关于此报表的来源及台前幕后的各种说法,请自己查询相关的网站。

3

建立报表文件 选中报表浏览器控件后,在控件的右上角会出现一个小三角,点击后,出现一个菜单,选择“设计新报表”或在解决方案资源管理器中添加一个新的报表文件: 双击“报表项”内的“表”,则设计空白表内生成一个表格,我们可以在表格内添加数据项。 此报表的设计方式类似于MS以前的VB下报表设计环境。在报表设计器中,我将一份报表分为五个部分,从上至下为:报表标题区、列标题区、数据显示区、合计及页脚。如果将报表的设计形式显示出页眉及页脚,报表的形式会看得更清楚些: 选择页眉及页脚: 显示结果: 现在开始设计报表: 在“页眉”区内放入一个文本框,将内容更改为“测试报表”,居中,字体放大加粗: 从数据源窗口中选择合适的列,用鼠标拖到报表内的“详细信息”表格上,数据会自动填入: 将设计的报表保存后,返回报表浏览窗口,并为报表浏览器选择我们设计的报表: 选中报表文件后,菜单也有所改变: 再为此报表文件指定数据源,选择数据源: 确定,保存文件并运行测试文件。

4

预览 报表生成后预览如下: 是不是很简单?我们也可以对这个简单的报表进行美化,当然,我加上美化的一些功能后,可能效果更差,但此处只是为了演示用法。 Ø 为数据加表格。 在报表设计器中,选择需要加表格框的区域 然后在工具栏中选择边框工具 加什么样的框线根据需要,此处我选择“所有框线”。 看上去比原来的灰线能稍黑一些,在预览时就能看出来了。 加打印时间显示 加入一个显示打印时间的文本框,在上面按右键,选属性: 在“文件框属性”内,选择“值”后面的表达式生成: 在表达式中选择时间: 不要忘记表达式的前面一定要有一个“=”,如果没有,手工加上一个。为了更符合我们的习惯,前面可以加个说明,如打印时间等,表达式的写法就要稍做改变:还是以“=”开头,后面加上“打印时间:”,再以“&”连接生成的Now函数即可得到我们想要的样子。 Ø 为行加序号 为了演示,我将序号列加在了表格了最后列 加入一个新的列: 在显示序号的列中输入相关的值: 在此表达式的后面是Nothing,不是null,不要搞错。

5

功能已经完成,预览:

推荐信息