0
点赞
收藏
分享

微信扫一扫

ASP.Net Mvc3 Razor Sql Server Reporting Service


当你的系统需要提供报表功能时,你该怎么选择呢?手写Sql语句?加入Sql语句很难实现呢?手写Mdx?也许对于开发人员,手写Sql语句还可以接受,但是若是让你使用Mdx,那估计你就要崩溃了。起码也得花段时间学习一下BI的基本知识吧。

      在此,推荐你使用专业的报表服务,比如微软的Sql Server reporting Service。在你的项目中进行简单的调用即可。这里,我们使用最新的ASP.Net Mvc3 Razor +Sql Server Reporting Service为你演示

 

在动手之前,先搞清楚一件事情

你使用Sql Server Reporting Service版本号?

 

A:若是使用Report Server Project,(即你使用VS不同版本新建--》BI Project--》Report Server Project),将创建的是不同版本的Reporting Service

一般情况下,Vs2008创建的Report Server Project项目版本号是是9.0.0.0,

                  Vs2005创建的Report Server Project项目版本号是是8.0.0.0,

你问我VS2010,Vs2010的BIDS貌似还没有发布。

 


B:在项目中直接使用ReportView控件:如下图,不同VS工具箱中ReportView的版本号不同,

VS2010工具箱中的控件是10.0.0.0,

VS2008工具箱中的控件是9.0.0.0,

VS2005工具箱中的控件是8.0.0.0,

 


 

 

现在可以开始动手了,

首先:建立ASP.NET MVC 3 项目,选择模板引擎为Razor,具体省略。。。。

其次:我们使用VS2008创建Report Server Project,操作步骤:打开VS-新建--选中BIProject分类中的ReportServer Project,详见第一幅图,并部署。部署后,你可以通过​​http://localhost/Reports​​或者​​http://localhost/ReportServer​​中看到(若是你使用WIn7或Vista等具有UAC的系统,需要禁用UAC,目前没发现其他比较容易解决的方法,如有谁知道,麻烦通知我)

再次:在ASP.NET MVC 3中,调用ReportServer Project。

1、添加ReportController,添加后发现有Default Action "Index".

2、添加“Index” View,视图模板引擎这里选择“ASPX(C#)”

3、打开Report/Index.aspx,切换到设计 试图,拖动ReportView控件到设计视图上,此时VS会自动做以下几件事情:

   A:添加“Microsoft.ReportViewer.WebForms.dll”引用

   B:在Web.COnfig中添加以下节点

 


[xhtml]  ​​view plain​​ ​​copy​​



  1. <add assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>  
  2. <add assembly="Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>  
  3.                   


 C:在该页面添加


[c-sharp]  ​​view plain​​ ​​copy​​



  1. <%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"  
  2. "Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>  


4、修改 添加红色部分

<form id="Form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
     <rsweb:ReportViewer ID="ReportViewer1" runat="server" Width="100%">
        </rsweb:ReportViewer>
    </form>

 5、调试,此时会发现出现以下错误,按照提示,在Web.config中system.web/httpHandlers 节点下添加以下节点


[c-sharp]  ​​view plain​​ ​​copy​​



  1. <add verb="*" path="Reserved.ReportViewerWebControl.axd" type = "Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />  


 


6、再次调试,显示不出来数据

你会发现明明在http://loalhost/reports/该报表可以查出数据,但是在此处调用后,根本显示不出来数据

7、修改版本号

显示不出来数据时别急,还记得我们之前说的Report Server Project的版本么?回忆一下,我们通过VS2008 创建ReportServer Project,也就是说版本号是9.0.0.0,但是,我们调用的时候,全部使用的10.0.0.0,改过来试试。ok,数据回来了,此处切记切记。

举报

相关推荐

0 条评论