在MVC中使用rdlc格式的报表 前言 一、准备数据库 二、在应用程序中创建RDLC报表 三、在应用程序中创建aspx页面 四、在视图中加载WebForm页面 五、实现效果 六、结语

 近期,在公司做的项目中做到报表模块需要使用rdlc格式的报表,这个报表需要使用WebForm来加载,但是现在用ASP.NET做项目基本上都是MVC。由于以前没有使用过,因此记录下来,供以后查阅。

 下面做个简单的Demo,使用的工具是VS2012+SQL Server2012。

一、准备数据库

  我创建了一个非常简单的表格,添加了一些数据。结构如图所示:

在MVC中使用rdlc格式的报表
前言
一、准备数据库
二、在应用程序中创建RDLC报表
三、在应用程序中创建aspx页面
四、在视图中加载WebForm页面
五、实现效果
六、结语

二、在应用程序中创建RDLC报表

  1. 首先,在应用程序中添加ReportFile文件夹,右击文件夹,添加->新建项->Reporting->报表。

在MVC中使用rdlc格式的报表
前言
一、准备数据库
二、在应用程序中创建RDLC报表
三、在应用程序中创建aspx页面
四、在视图中加载WebForm页面
五、实现效果
六、结语

在MVC中使用rdlc格式的报表
前言
一、准备数据库
二、在应用程序中创建RDLC报表
三、在应用程序中创建aspx页面
四、在视图中加载WebForm页面
五、实现效果
六、结语

  2.选择左边的"表",直接拖到右边。或者在右边右键->插入->表。结果如下:

在MVC中使用rdlc格式的报表
前言
一、准备数据库
二、在应用程序中创建RDLC报表
三、在应用程序中创建aspx页面
四、在视图中加载WebForm页面
五、实现效果
六、结语

3.将鼠标放在表格上,点击图中箭头所示,会出现菜单“创建新数据源”。

在MVC中使用rdlc格式的报表
前言
一、准备数据库
二、在应用程序中创建RDLC报表
三、在应用程序中创建aspx页面
四、在视图中加载WebForm页面
五、实现效果
六、结语

4.之后会出现如下界面,点击新建之后,配置好数据源,点击保存。

在MVC中使用rdlc格式的报表
前言
一、准备数据库
二、在应用程序中创建RDLC报表
三、在应用程序中创建aspx页面
四、在视图中加载WebForm页面
五、实现效果
六、结语

5.然后点击3中的箭头所示,会将表中的列展示出来,在表格中选择需要显示的列,最终结果如下:

在MVC中使用rdlc格式的报表
前言
一、准备数据库
二、在应用程序中创建RDLC报表
三、在应用程序中创建aspx页面
四、在视图中加载WebForm页面
五、实现效果
六、结语

三、在应用程序中创建aspx页面

在应用程序中,创建一个ReportPage的文件夹,添加一个webForm窗体。在页面拖两个控件:

在MVC中使用rdlc格式的报表
前言
一、准备数据库
二、在应用程序中创建RDLC报表
三、在应用程序中创建aspx页面
四、在视图中加载WebForm页面
五、实现效果
六、结语

简单设置一下ReportViewer,然后在ReportView中间,插入节点“LocalReport”,最终webForm页面如下:

在MVC中使用rdlc格式的报表
前言
一、准备数据库
二、在应用程序中创建RDLC报表
三、在应用程序中创建aspx页面
四、在视图中加载WebForm页面
五、实现效果
六、结语

下面来写后台代码,从数据库中获取表格的数据源。

在MVC中使用rdlc格式的报表
前言
一、准备数据库
二、在应用程序中创建RDLC报表
三、在应用程序中创建aspx页面
四、在视图中加载WebForm页面
五、实现效果
六、结语

四、在视图中加载WebForm页面

这部分开始我是遇到一个问题,如何在视图里面加载webForm页面?

这里我采用的是iframe,将其src属性指向aspx页面。

视图界面主要代码如下:

在MVC中使用rdlc格式的报表
前言
一、准备数据库
二、在应用程序中创建RDLC报表
三、在应用程序中创建aspx页面
四、在视图中加载WebForm页面
五、实现效果
六、结语

五、实现效果

在IE浏览器中,运行出现一个错误:

在MVC中使用rdlc格式的报表
前言
一、准备数据库
二、在应用程序中创建RDLC报表
三、在应用程序中创建aspx页面
四、在视图中加载WebForm页面
五、实现效果
六、结语

按照提示,将语句添加至web.config中。再次运行,成功了。

在MVC中使用rdlc格式的报表
前言
一、准备数据库
二、在应用程序中创建RDLC报表
三、在应用程序中创建aspx页面
四、在视图中加载WebForm页面
五、实现效果
六、结语

可是,当网站在Chrome浏览器中运行时,没有报错,但是表格没有数据:

在MVC中使用rdlc格式的报表
前言
一、准备数据库
二、在应用程序中创建RDLC报表
三、在应用程序中创建aspx页面
四、在视图中加载WebForm页面
五、实现效果
六、结语

这时候,我们只需要在WebForm页面设置ReportViewer控件的“SizeToReportContent”属性设置为“true”即可。

在MVC中使用rdlc格式的报表
前言
一、准备数据库
二、在应用程序中创建RDLC报表
三、在应用程序中创建aspx页面
四、在视图中加载WebForm页面
五、实现效果
六、结语

再次浏览,也成功了。

六、结语

本次分享到此结束。如果这篇文章对你有帮助的话,评论或推荐下吧!

项目源码:https://github.com/liuyang-1990/ReportDemo

作者:NaYoung
出处:http://www.cnblogs.com/liuyoung/p/7728773.html
欢迎转载,但任何转载必须保留完整文章,在显要地方显示署名以及原文链接。如您有任何疑问或者授权方面的协商,请给我留言