在ASP.NET的研究学习中又要用到报表,比如在OA系统里实现凭证、文件等,报表是一个必不可少的东西,但百度了一圈,发现讲得最多的还是水晶报表等第三方报表,好像微软原装的RDLC报表随着MVC的升级渐渐淡出了报表圈?本着原装的就是最好的契合度的想法,于是开始了默默的研究使用配置RDLC报表。

本次仍然用之前已建好的test实例

ASP.NET MVC 初学笔记.1 EF连接数据库的多种方法

ASP.NET MVC 初学笔记.2 一个View多个Models的对应

来操作

1、首先VS2013版本(未证实)以上的RDLC都被放在了安装文件的Microsoft SQL Server Data Tools里了,如果发现在添加—Reporting里没有选项或者就没有Reporting就说明你必须重新运行安装包然后勾选Microsoft SQL Server Data Tools 来安装功能。

2、添加引用

3、根目录下建Report文件夹,右键添加新建项:

4、在报表设计页面的最左边选择数据集右键添加数据集,此处数据集的作用只是给报表提供绑定的字段,数据集生成后可以直接删除。

点击新建

选择之前建好的EF的数据实体

此处可以不勾选,因为我们最终使用通过EF来绑定数据,因此此数据集不需要连接

选择自己要用的表,此处选一张表也就可以了,如果还需要在此报表提现多个数据库内容,需要再按照整个流程再添加一次

注意[名称]后面会用到

在报表的设计页面插入表然后把需要绑定的字段拖入表中就完成了。

5、在Controller文件夹下新建ReportController.cs

using Microsoft.Reporting.WebForms;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.Entity;
using System.Web.Mvc;
using test.Models;namespace test.Controllers
{public class ReportController:Controller{public ActionResult Index(){LocalReport localReport = new LocalReport();localReport.ReportPath = Server.MapPath("~/Report/TestReport.rdlc");DBcontest db = new DBcontest();//var T2 = db.Testtable2.ToList();//这里可以使用EF的各种查询方法ReportDataSource rds = new ReportDataSource("Tb2", T2);//此处"Tb2"就是TestReport报表里数据集的名称,一定要对应起来才可以对报表里的正常绑定赋值localReport.DataSources.Add(rds);string reportType = "PDF";string mimeType;string encoding;string fileNameExtension;string deviceInfo ="<DeviceInfo>" +"  <OutputFormat>PDF</OutputFormat>" +"  <PageWidth>8.5in</PageWidth>" +"  <PageHeight>11in</PageHeight>" +"  <MarginTop>0.5in</MarginTop>" +"  <MarginLeft>1in</MarginLeft>" +"  <MarginRight>1in</MarginRight>" +"  <MarginBottom>0.5in</MarginBottom>" +"</DeviceInfo>";Warning[] warnings;string[] streams;byte[] renderedBytes;renderedBytes = localReport.Render(reportType,deviceInfo,out mimeType,out encoding,out fileNameExtension,out streams,out warnings);return File(renderedBytes, mimeType);}}
}

6、新建View—Report—Index.cshtml

7、测试

得到了一个PDF形式的报表,至于其他形式的报表,可以在Controller里设置。

8.

实际上,RDLC报表并非兼容MVC的VIEW模式,其实RDLC在WebForm里的支持更好,操作也更简单,可以换一种思路,只需要做好设置在MVC里也允许调用ASPX文件,然后RDLC的控件通过WebForm来实现操作,再将WebForm放入View里就也实现了MVC对RDLC报表的操作。

另外,MVC的View模式展示报表应该是可以直接用Html语言来实现。

ASP.NET MVC 初学笔记.3 MVC5、EF、RDLC实现报表操作相关推荐

  1. 【ASP.NET MVC 学习笔记】- 07 使用 Entity Framework

    本文参考:http://www.cnblogs.com/willick/p/3304534.html 1.ORM(Object Relation Mapping)工具,是为了解决"关系数据库 ...

  2. 【ASP.NET MVC 学习笔记】- 06 在MVC中使用Ninject

    本文参考:http://www.cnblogs.com/willick/p/3299077.html 1.在ASP.NET MVC中一个客户端请求是在特定的Controller的Action中处理的. ...

  3. 【ASP.NET MVC 学习笔记】- 09 Area的使用

    本文参考:http://www.cnblogs.com/willick/p/3331519.html 1.ASP.NET MVC允许使用 Area(区域)来组织Web应用程序,这对于大的工程非常有用, ...

  4. 【ASP.NET MVC 学习笔记】- 16 Model Binding(模型绑定)

    本文参考:http://www.cnblogs.com/willick/p/3424188.html. 1.Model Binding是Http请求和Action方法之间的桥梁,是MVC框架根据Htt ...

  5. 【ASP.NET MVC 学习笔记】- 10 Controller和Action(1)

    本文参考:http://www.cnblogs.com/willick/p/3331521.html 1.继承IController接口,示例代码将当前请求的Controller和Action打印到浏 ...

  6. EFMVC - ASP.NET MVC 3 and Entity Framework 4.1 Code First 项目介绍

    项目概述 使用ASP.NET MVC 3.Razor.EF Code First.Unity 2.0 等等技术,演示如何创建一个ASP.NET MVC 3 的范例应用程序. 相关技术帖子: 中文: 使 ...

  7. Asp.Net MVC WebAPI的创建与前台Jquery ajax后台HttpClient调用详解

    1.什么是WebApi,它有什么用途? Web API是一个比较宽泛的概念.这里我们提到Web API特指ASP.NET MVC Web API.在新出的MVC中,增加了WebAPI,用于提供REST ...

  8. ASP.NET MVC 2.0 AsyncController(转)

    ASP.NET MVC 2.0 新增 非同步控制器 (AsyncController) 的開發方式,若是你的網站流量大但是大部分的運算資源是落在與 CPU 無關的運算上時,例如 SQL Server. ...

  9. 简述C#中IO的应用 RabbitMQ安装笔记 一次线上问题引发的对于C#中相等判断的思考 ef和mysql使用(一) ASP.NET/MVC/Core的HTTP请求流程...

    简述C#中IO的应用 在.NET Framework 中. System.IO 命名空间主要包含基于文件(和基于内存)的输入输出(I/O)服务的相关基础类库.和其他命名空间一样. System.IO ...

最新文章

  1. Java开发工具(Eclipse中内容辅助键的使用)
  2. 太胖就会变秃,这回真的有依据了!日本学者发现肥胖会诱导毛囊衰竭 | Nature...
  3. iOS—如何申请苹果公司开发者账号流程详细图文介绍(包括邓白氏编码的申请方法详细介绍)...
  4. java做一个客房管理系统定制_Java实现酒店客房管理系统
  5. [RHEL5企业级Linux服务攻略]--第9季 Squid服务全攻略之高级配置
  6. Javascript闭包概念剖析
  7. 詹金斯搭建_与詹金斯一起连续交付Heroku
  8. Navicat将mysql表结构导成oracle表结构
  9. kali linux查看网卡_CentOS7.6安装无线网卡驱动|Linux如何安装网卡驱动|Linux如何让配置网卡...
  10. 还原哈希密码工具(hash、md5)
  11. Nuget如何自动下载依赖DLL引用
  12. Python中正则匹配使用findall时的注意事项
  13. Egret入门学习日记 --- 第十篇(书中 2.9~2.13节 内容)
  14. ics计算机系统全称,ICS计算机系统实验--datalab实验
  15. 强化学习平台安装 Mujoco、mujoco-py、gym、baseline
  16. 网卡设备状态显示错误代码56
  17. 虚拟信用卡绑定paypal验证的教程
  18. 永恒之蓝ms17_010漏洞
  19. Linux:root下的文件-anaconda-ks.cfg详解
  20. gunicorn的命令参数解释

热门文章

  1. 远程服务器返回错误: (500) 内部服务器错误错误处理
  2. Spark实现SVM模型
  3. CSP考试复习:第三单元 3.7 代码模板
  4. 东华理工大学南昌校区学计算机,我校学子在2019年第十四届江西省大学生计算机作品赛斩获佳绩...
  5. 【项目实战】Spring Cloud Gateway入门介绍 - 网关过滤器工厂
  6. 單子の题解:直线石子合并
  7. iebook2010+绿色破解版的解压密码
  8. java记忆纸牌 计分功能,实例:利用记忆宫殿 记忆扑克牌
  9. 永磁同步电机(PMSM)最小损耗控制Simulink仿真
  10. PostgreSQL创建一个数据库和常用的命令