用RDLC报表(一)
1 建立数据源
启动VS2005新建一个窗体项目,命名为TestProj
![](http://www.cnblogs.com/images/cnblogs_com/wjhx/p1.gif)
在左边的窗体内选择“添加新数据源”或在菜单上操作“添加新数据源”:
![](http://www.cnblogs.com/images/cnblogs_com/wjhx/p2.gif)
选择后出现对话窗体,选择“数据库”,进入“下一步”:
![](https://i-blog.csdnimg.cn/blog_migrate/d6df52c0876679fad7c90807ba477566.gif)
本数据源以SqlServer2000所提供的Northwind数据库为例,因此在数据库内选择驱动程序为SqlServer,具体操作视所用数据库而定(如果连接为Oracle,建议用Oracle所提供的ODP for .NET,地址:http://www.oracle.com/technology/global/cn/software/tech/windows/odpnet/index.html)。
![](https://i-blog.csdnimg.cn/blog_migrate/d67435f8a710e453add4956e71100eca.gif)
选择数据源后,指定数据库文件,并进行测试,如果连接不通,请检查你的软件设置。
![](https://i-blog.csdnimg.cn/blog_migrate/a3052274430b5f84cf560cf37d5e2bdf.gif)
进行下一步,至显示出库文件内的表及视图,然后打开表,并选择其中的Employees,选择完成。
![](https://i-blog.csdnimg.cn/blog_migrate/c871be56f95ec9f065ac48167e4b6813.gif)
在数据源窗口中显示出所选择表及表内的字段,以备使用。
![](https://i-blog.csdnimg.cn/blog_migrate/510ec1eb8fe791c005623ec4c20e9989.gif)
同时在资源管理器中,也可以看到新增加的数据文件。
![](https://i-blog.csdnimg.cn/blog_migrate/9aaf6981273590919e2b7882c0c3506f.gif)
2 报表浏览器
在新建的窗体内,放入报表浏览控件:
![](https://i-blog.csdnimg.cn/blog_migrate/7250f4539c9d834cfea701a4286d2b38.gif)
此报表浏览控件集成了报表查看及打印预览的功能,可直接输出至打印机,也可直接输出至Excel文件或PDF文件,对于喜欢看Excel表格的客户来说,这个报表控件非常不错。关于此报表的来源及台前幕后的各种说法,请自己查询相关的网站。
3 建立报表文件
选中报表浏览器控件后,在控件的右上角会出现一个小三角,点击后,出现一个菜单,选择“设计新报表”或在解决方案资源管理器中添加一个新的报表文件:
![](https://i-blog.csdnimg.cn/blog_migrate/88dc003f73896ffb947a521269387674.gif)
双击“报表项”内的“表”,则设计空白表内生成一个表格,我们可以在表格内添加数据项。
![](https://i-blog.csdnimg.cn/blog_migrate/74d4f7e2e749088470f66dbba7392b50.gif)
此报表的设计方式类似于MS以前的VB下报表设计环境。在报表设计器中,我将一份报表分为五个部分,从上至下为:报表标题区、列标题区、数据显示区、合计及页脚。如果将报表的设计形式显示出页眉及页脚,报表的形式会看得更清楚些:
选择页眉及页脚:
![](https://i-blog.csdnimg.cn/blog_migrate/f9b895fe4bd7cb2dc6f5a577868b0be3.gif)
显示结果:
![](https://i-blog.csdnimg.cn/blog_migrate/56fadc4b6e0a93def69e49c939be1394.gif)
现在开始设计报表:
在“页眉”区内放入一个文本框,将内容更改为“测试报表”,居中,字体放大加粗:
![](https://i-blog.csdnimg.cn/blog_migrate/dd50a4ecd07941467851b961c1d6d462.gif)
从数据源窗口中选择合适的列,用鼠标拖到报表内的“详细信息”表格上,数据会自动填入:
![](https://i-blog.csdnimg.cn/blog_migrate/48b33e7a1df2393a1c9db1b0482b6298.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/cb5ba7bb4f7dec065d939ece15f820cf.gif)
将设计的报表保存后,返回报表浏览窗口,并为报表浏览器选择我们设计的报表:
![](https://i-blog.csdnimg.cn/blog_migrate/9a1e477266b79e53f38501ca331f773a.gif)
选中报表文件后,菜单也有所改变:
![](https://i-blog.csdnimg.cn/blog_migrate/b4ad3871edee985f2ad8d0f0a078c147.gif)
再为此报表文件指定数据源,选择数据源:
![](https://i-blog.csdnimg.cn/blog_migrate/001df8dd0dccbfa42d2997120967db3e.gif)
确定,保存文件并运行测试文件。
4 预览
报表生成后预览如下:
![](https://i-blog.csdnimg.cn/blog_migrate/163ebba03d1c8de9b52af7e6a86de712.gif)
是不是很简单?我们也可以对这个简单的报表进行美化,当然,我加上美化的一些功能后,可能效果更差,但此处只是为了演示用法。
Ø 为数据加表格。
在报表设计器中,选择需要加表格框的区域
![](https://i-blog.csdnimg.cn/blog_migrate/51c1b2d4e934dc937200a61c1120f380.gif)
然后在工具栏中选择边框工具
![](https://i-blog.csdnimg.cn/blog_migrate/ab944ae89c4b34bdabc95c119fe54d42.gif)
加什么样的框线根据需要,此处我选择“所有框线”。
![](https://i-blog.csdnimg.cn/blog_migrate/ecd608948270ba1ed7e1dcb5de0e07f5.gif)
看上去比原来的灰线能稍黑一些,在预览时就能看出来了。
Ø 加打印时间显示
加入一个显示打印时间的文本框,在上面按右键,选属性:
![](https://i-blog.csdnimg.cn/blog_migrate/85fc75064431c12f8496c769720b28bc.gif)
在“文件框属性”内,选择“值”后面的表达式生成:
![](https://i-blog.csdnimg.cn/blog_migrate/04e2e8058bac7b782ef85f05f23414ec.gif)
在表达式中选择时间:
![](https://i-blog.csdnimg.cn/blog_migrate/de00aef917f1cee2296d34eea0de8e0f.gif)
不要忘记表达式的前面一定要有一个“=”,如果没有,手工加上一个。为了更符合我们的习惯,前面可以加个说明,如打印时间等,表达式的写法就要稍做改变:还是以“=”开头,后面加上“打印时间:”,再以“&”连接生成的Now函数即可得到我们想要的样子。
![](https://i-blog.csdnimg.cn/blog_migrate/9802c5ecc7cbd88e97cbb13b210c127f.gif)
Ø 为行加序号
为了演示,我将序号列加在了表格了最后列
加入一个新的列:
![](https://i-blog.csdnimg.cn/blog_migrate/583eadcdd9aed7b7a662ef0e7d59fff6.gif)
在显示序号的列中输入相关的值:
![](https://i-blog.csdnimg.cn/blog_migrate/5b2db724ec31c9b5ad42c8a3ec19fa66.gif)
在此表达式的后面是Nothing,不是null,不要搞错。
![](https://i-blog.csdnimg.cn/blog_migrate/9ef989af08cdb99eb2f6845630fddcb3.gif)
三项功能已经完成,预览:
![](https://i-blog.csdnimg.cn/blog_migrate/1919051d74930257374a197d94f66e67.gif)
比原来漂亮吗?至少实用了一些。
<!--[if !supportLists]-->1<!--[endif]-->新建窗体
![](https://i-blog.csdnimg.cn/blog_migrate/9608e040806b8d9e571de687832b709a.gif)
<!--[if !supportLists]-->2<!--[endif]-->建立数据源
![](https://i-blog.csdnimg.cn/blog_migrate/64029b95d129456c36e95d2337da9545.gif)
3<!--[endif]-->建立报表
![](https://i-blog.csdnimg.cn/blog_migrate/f9f822c1f9ca2e61c43c3566f0fda20d.gif)
新的数据报表已经生成,下面开始对数据源进行设置。
<!--[if !supportLists]-->4<!--[endif]-->对报表自动生成的数据源进行设置
选择工具栏 à 报表 à 数据源,选中所要修改的数据源后,用“重命名”对其进行修改,如myds。
![](https://i-blog.csdnimg.cn/blog_migrate/18cd2d6d17bbed0721c3d44316ac7fcc.gif)
修改完成后,确定退出此窗口。
选中报表设计器内的表格,显示属性。将表格的数据集名称更改为上面修改的名称。
![](https://i-blog.csdnimg.cn/blog_migrate/724c8041d56d8eda7b15ef7f0fe7fcc8.gif)
如果一个报表文件内只有一个数据源,则表格内的数据值可直接写为“=Fields!字段.Value”的格式,如果包含多个数据源,则要对此字段的取值进行指定,如“=(Fields!字段.value,“数据集名称””。
<!--[if !supportLists]-->5<!--[endif]-->手动生成数据源
手动生成的数据集内必须包含报表文件内设计的字段名称,否则会运行出现错误。
生成数据集: