您的位置:首页 > 编程语言 > ASP

ASP.Net Mvc3 Razor Sql Server Reporting Service

2014-08-06 11:39 477 查看
当你的系统需要提供报表功能时,你该怎么选择呢?手写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
plaincopy

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

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

                  

 C:在该页面添加

[c-sharp] view
plaincopy

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"  

    Namespace="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
plaincopy

<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,数据回来了,此处切记切记。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: