找回密码
 立即注册

QQ登录

只需一步,快速开始

ZenosZeng 讲师达人认证 悬赏达人认证

超级版主

300

主题

7876

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
13140

活字格认证圣诞拼拼乐微信认证勋章讲师达人元老葡萄悬赏达人

ZenosZeng 讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-2-29 17:54  /   查看:7371  /  回复:0
随着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中。
  1.     public class HomeController : Controller
  2.     {
  3.         public ActionResult Report()
  4.         {
  5.             ViewData["Report"] = new _rpt;
  6.             return View();
  7.         }
  8.     }
复制代码
3、通过Actiion方法创建一个View Page,并添加ActiveReports的WebViewer到View Page中:
  1. <ActiveReportsWeb:WebViewer ID="WebViewer1" runat="server" height="559px"
  2.     width="100%" onload="WebViewer1_Load" ViewerType="AcrobatReader">
  3. </ActiveReportsWeb:WebViewer>
复制代码
4、MVC中的View Page并不支持 .cs 的后台代码文件,这一点是和MVC设计理念相符的。然而,我们需要从ViewData中得到Controller中传过来的报表对象,并将报表对象设置给WebViewer,这些逻辑需要在WebViewer的Load事件中完成:
  1. <script runat="server">   
  2.     protected void WebViewer1_Load(object sender, EventArgs e)
  3.     {
  4.         WebViewer1.Report = (DataDynamics.ActiveReports.ActiveReport)ViewData["Report"];
  5.     }
  6. </script>
复制代码
5、当WebViewer的ViewType设置为AcrobatReader时,我们需要设置相应的Http Handlers,为了路由引擎不处理这些Http请求,并保持Http请求的默认行为,我们需要对IgnoreRoute进行相应的设置,修改Global.asax中的RegisterRoutes方法:
  1. public static void RegisterRoutes(RouteCollection routes)
  2. {
  3.     routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
  4.     routes.IgnoreRoute("{*allarcachitems}", new { allarcachitems = @".*\.ArCacheItem(/.*)?" });
  5.     routes.MapRoute(
  6.         "Default", // Route name
  7.         "{controller}/{action}/{id}", // URL with parameters
  8.         new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
  9.     );
  10. }
复制代码
6、在Web.config中添加以下Http Handlers 的配置信息
  1. <add verb="*" path="*.rpx" type="DataDynamics.ActiveReports.Web.Handlers.RpxHandler, ActiveReports.Web, Version=x.x.xxxx.x, Culture=neutral, PublicKeyToken=cc4967777c49a3ff"/>
  2.    
  3. <add verb="*" path="*.ActiveReport" type="DataDynamics.ActiveReports.Web.Handlers.CompiledReportHandler, ActiveReports.Web, Version= x.x.xxxx.x, Culture=neutral, PublicKeyToken=cc4967777c49a3ff"/>
  4.    
  5. <add verb="*" path="*.ArCacheItem" type="DataDynamics.ActiveReports.Web.Handlers.WebCacheAccessHandler, ActiveReports.Web, Version= x.x.xxxx.x, Culture=neutral, PublicKeyToken=cc4967777c49a3ff"/>
复制代码
7、运行程序可以查看报表


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部