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


    随着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、运行程序可以查看报表

     

    源码下载:在ASP.NET MVC 中使用ActiveReports报表控件

    同时,安装ActiveReports产品之后,在这个目录可以找到源代码,C:Users用户名DocumentsComponentOne SamplesActiveReports Developer 7ProfessionalC#

    相关阅读:

    【推荐】中铁、中石油等大型企业的复杂报表解决方案

    ActiveReports11 SP1 新特性

    ActiveReports11 新特性

     

  • 相关阅读:
    第二阶段冲刺总结01
    第十四周学习进度
    第十三周进度
    意见改进
    BZOJ 2109 航空管制(拓扑排序+贪心)
    BZOJ 2131 圈地计划(最小割+黑白染色)
    BZOJ 2118 墨墨的等式(最短路)
    BZOJ 2157 旅行(树链剖分码农题)
    BZOJ 2141 排队(树状数组套主席树)
    BZOJ 2186 沙拉公主的困惑(预处理逆元+欧拉函数)
  • 原文地址:https://www.cnblogs.com/powertoolsteam/p/3180854.html
Copyright © 2020-2023  润新知