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中添加以下节点

 

 C:在该页面添加

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 节点下添加以下节点

 

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

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

7、修改版本号

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

 

 

 

 

 

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值