ASP.NET MVC 初学笔记.3 MVC5、EF、RDLC实现报表操作
在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实现报表操作相关推荐
- 【ASP.NET MVC 学习笔记】- 07 使用 Entity Framework
本文参考:http://www.cnblogs.com/willick/p/3304534.html 1.ORM(Object Relation Mapping)工具,是为了解决"关系数据库 ...
- 【ASP.NET MVC 学习笔记】- 06 在MVC中使用Ninject
本文参考:http://www.cnblogs.com/willick/p/3299077.html 1.在ASP.NET MVC中一个客户端请求是在特定的Controller的Action中处理的. ...
- 【ASP.NET MVC 学习笔记】- 09 Area的使用
本文参考:http://www.cnblogs.com/willick/p/3331519.html 1.ASP.NET MVC允许使用 Area(区域)来组织Web应用程序,这对于大的工程非常有用, ...
- 【ASP.NET MVC 学习笔记】- 16 Model Binding(模型绑定)
本文参考:http://www.cnblogs.com/willick/p/3424188.html. 1.Model Binding是Http请求和Action方法之间的桥梁,是MVC框架根据Htt ...
- 【ASP.NET MVC 学习笔记】- 10 Controller和Action(1)
本文参考:http://www.cnblogs.com/willick/p/3331521.html 1.继承IController接口,示例代码将当前请求的Controller和Action打印到浏 ...
- 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 的范例应用程序. 相关技术帖子: 中文: 使 ...
- Asp.Net MVC WebAPI的创建与前台Jquery ajax后台HttpClient调用详解
1.什么是WebApi,它有什么用途? Web API是一个比较宽泛的概念.这里我们提到Web API特指ASP.NET MVC Web API.在新出的MVC中,增加了WebAPI,用于提供REST ...
- ASP.NET MVC 2.0 AsyncController(转)
ASP.NET MVC 2.0 新增 非同步控制器 (AsyncController) 的開發方式,若是你的網站流量大但是大部分的運算資源是落在與 CPU 無關的運算上時,例如 SQL Server. ...
- 简述C#中IO的应用 RabbitMQ安装笔记 一次线上问题引发的对于C#中相等判断的思考 ef和mysql使用(一) ASP.NET/MVC/Core的HTTP请求流程...
简述C#中IO的应用 在.NET Framework 中. System.IO 命名空间主要包含基于文件(和基于内存)的输入输出(I/O)服务的相关基础类库.和其他命名空间一样. System.IO ...
最新文章
- Java开发工具(Eclipse中内容辅助键的使用)
- 太胖就会变秃,这回真的有依据了!日本学者发现肥胖会诱导毛囊衰竭 | Nature...
- iOS—如何申请苹果公司开发者账号流程详细图文介绍(包括邓白氏编码的申请方法详细介绍)...
- java做一个客房管理系统定制_Java实现酒店客房管理系统
- [RHEL5企业级Linux服务攻略]--第9季 Squid服务全攻略之高级配置
- Javascript闭包概念剖析
- 詹金斯搭建_与詹金斯一起连续交付Heroku
- Navicat将mysql表结构导成oracle表结构
- kali linux查看网卡_CentOS7.6安装无线网卡驱动|Linux如何安装网卡驱动|Linux如何让配置网卡...
- 还原哈希密码工具(hash、md5)
- Nuget如何自动下载依赖DLL引用
- Python中正则匹配使用findall时的注意事项
- Egret入门学习日记 --- 第十篇(书中 2.9~2.13节 内容)
- ics计算机系统全称,ICS计算机系统实验--datalab实验
- 强化学习平台安装 Mujoco、mujoco-py、gym、baseline
- 网卡设备状态显示错误代码56
- 虚拟信用卡绑定paypal验证的教程
- 永恒之蓝ms17_010漏洞
- Linux:root下的文件-anaconda-ks.cfg详解
- gunicorn的命令参数解释
热门文章
- 远程服务器返回错误: (500) 内部服务器错误错误处理
- Spark实现SVM模型
- CSP考试复习:第三单元 3.7 代码模板
- 东华理工大学南昌校区学计算机,我校学子在2019年第十四届江西省大学生计算机作品赛斩获佳绩...
- 【项目实战】Spring Cloud Gateway入门介绍 - 网关过滤器工厂
- 單子の题解:直线石子合并
- iebook2010+绿色破解版的解压密码
- java记忆纸牌 计分功能,实例:利用记忆宫殿 记忆扑克牌
- 永磁同步电机(PMSM)最小损耗控制Simulink仿真
- PostgreSQL创建一个数据库和常用的命令