继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

在ASP.NET MVC 中使用ActiveReports报表控件

Cats萌萌
关注TA
已关注
手记 275
粉丝 50
获赞 304

随着MVC模式的广泛运用,对Web应用系统的开发带来了巨大的影响,我们好像又回到了原来的ASP时代,视乎这是一种后退而不是一种进步,不过MVC模式给我们带来的影响不仅限于我们所看到的这一点.。MVC看上去是使用原来的HTML页面来呈现内容,但其核心是 .NET路由引擎,通过.NET路由引擎使得MVC设计模式更容易被理解,更方便开发人员所使用,而且不必担心视图状态以及页面的生命周期。 

ActiveReports最初是为传统的 .NET Web Forms 系统所设计,但也可用于MVC模式的系统中。下面就来谈一谈ActiveReports 6.0如何用于MVC模式的系统中。
1、创建一个MVC 3 工程,并添加ActiveReports 6.0到工程中      
2、在工程中添加一个Controller,然后在Controller中添加一个Action方法。我们将报表对象存放在ViewData对象中,通过ViewData将报表从Controller传递到View中。

public class HomeController : Controller     {         public ActionResult Report()         {             ViewData["Report"] = new _rpt;             return View();         }     }

3、通过Actiion方法创建一个View Page,并添加ActiveReports的WebViewer到View Page中:

<ActiveReportsWeb:WebViewer ID="WebViewer1" runat="server" height="559px"    width="100%" onload="WebViewer1_Load" ViewerType="AcrobatReader"></ActiveReportsWeb:WebViewer>

4、 MVC中的View Page并不支持 .cs 的后台代码文件,这一点是和MVC设计理念相符的。然而,我们需要从ViewData中得到Controller中传过来的报表对象,并将报表对象设置给 WebViewer,这些逻辑需要在WebViewer的Load事件中完成:

<script runat="server">       protected void WebViewer1_Load(object sender, EventArgs e)     {         WebViewer1.Report = (DataDynamics.ActiveReports.ActiveReport)ViewData["Report"];     }</script>  

5、当 WebViewer的ViewType设置为AcrobatReader时,我们需要设置相应的Http Handlers,为了路由引擎不处理这些Http请求,并保持Http请求的默认行为,我们需要对IgnoreRoute进行相应的设置,修改 Global.asax中的RegisterRoutes方法:

   public static void RegisterRoutes(RouteCollection routes)     {        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");        routes.IgnoreRoute("{*allarcachitems}", new { allarcachitems = @".*\.ArCacheItem(/.*)?" });        routes.MapRoute(         "Default", // Route name            "{controller}/{action}/{id}", // URL with parameters            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults            );    }

6、在Web.config中添加以下Http Handlers 的配置信息

<add verb="*" path="*.rpx" type="DataDynamics.ActiveReports.Web.Handlers.RpxHandler, ActiveReports.Web, Version=x.x.xxxx.x, Culture=neutral, PublicKeyToken=cc4967777c49a3ff"/><add verb="*" path="*.ActiveReport" type="DataDynamics.ActiveReports.Web.Handlers.CompiledReportHandler, ActiveReports.Web, Version= x.x.xxxx.x, Culture=neutral, PublicKeyToken=cc4967777c49a3ff"/><add verb="*" path="*.ArCacheItem" type="DataDynamics.ActiveReports.Web.Handlers.WebCacheAccessHandler, ActiveReports.Web, Version= x.x.xxxx.x, Culture=neutral, PublicKeyToken=cc4967777c49a3ff"/>

7、运行程序可以查看报表

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP