码迷,mamicode.com
首页 > 其他好文 > 详细

ReportViewer技巧汇总

时间:2016-05-19 14:40:47      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

在MVC项目中使用ReportViewer

创建WebForm,向Webform中添加ReportViewer控件,通过CodeBehind设置报表参数并填充数据,测试通过后在MVC的View中iFrame新创建的WebForm

在MVC项目中使用使用DbContext作为ReportViewer的数据源

在MVC项目内部新建Report.rdlc后,发现不能选择Object(DbContext)作为数据源。网上找到的一个解决办法是:在同解决方案中新建另一个非Web的项目,如WinForm项目。在WinForm项目添加对Web项目及其他相关项目的引用,之后用向导创建rdlc,创建时会看到选择数据源的选项中有Object选项了,"下一步"后就可以选择相应的对象作为数据源,如MyProject.Models.Product,创建好数据源,记下设定的数据集(DataSet)的名称(如dsProduct)。保存。将在此生成的rdlc文件复制到主Web项目中进行报表设计

以下是生成并填充报表数据的代码,注意代码中用到的数据源名称必须与之前创建RDLC的时候所记下的DataSet名称一致,即下面例程中的dsProduct:

                string path = Path.Combine(Server.MapPath(@"\Rdlc"), "MyReport.rdlc");
                ReportViewer1.ProcessingMode = ProcessingMode.Local;
                ReportViewer1.LocalReport.ReportPath = path;
                MyProductBusiness business = new MyProductBusiness();
                List<Product> records = business.Search().Take(100).ToList();
                ReportDataSource rptDataSource = new ReportDataSource("dsMyProduct", records);
                ReportViewer1.LocalReport.DataSources.Add(rptDataSource);

ReportViewer控件版本为V11.x.x.x,但是项目添加引用"Microsoft.ReportViewer.Webform.dll"时只有V10.x.x.x和V9.x.x.x显示在列表中

用Nuget,找到MicosoftReportViewerWebForms_v11并添加,Nuget显示版本为1.0.1,但是这只是此Nuget包的版本,实际ReportViewer的版本是11.0.0.0

PM> Install-Package MicosoftReportViewerWebForms_v11

使ReporViewer在Webform中的高度和宽度为100%

<rsweb:ReportViewer ID="ReportViewer1" runat="server" Height="100%" Width="100%" AsyncRendering="False" SizeToReportContent="True" ......>
</rsweb:ReportViewer>

 

ReportViewer技巧汇总

标签:

原文地址:http://www.cnblogs.com/heuyang/p/5508292.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!