在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\用戶名\Documents\ComponentOne Samples\ActiveReports Developer 7\Professional\C#

 

相關閱讀:

【推薦】中鐵、中石油等大型企業的復雜報表解決方案

ActiveReports11 SP1 新特性

ActiveReports11 新特性

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM