• <menu id="w2i4a"></menu>
  • logo FastReport.Net 教程2017(完結(jié))

    文檔首頁(yè)>>FastReport.Net 教程2017(完結(jié))>>如何在開發(fā)MVC應(yīng)用程序時(shí)使用報(bào)表

    如何在開發(fā)MVC應(yīng)用程序時(shí)使用報(bào)表


    當(dāng)你使用MVC模板創(chuàng)建自己的Web項(xiàng)目,會(huì)出現(xiàn)一個(gè)合理的問(wèn)題 - 如何在其中使用FastReport.Net Web報(bào)表?

    在這篇文章中,我會(huì)為你演示如何做到這一點(diǎn)。

    由于在MVC體系結(jié)構(gòu)中,視圖與邏輯分離,所以你將無(wú)法使用WebReport的可視化組件。我將不得不使用控制器代碼中的報(bào)表,然后將其轉(zhuǎn)移到視圖。例如,在這里我使用了一個(gè)標(biāo)準(zhǔn)的MVC Web應(yīng)用程序。首先,我們將必要的庫(kù)連接到項(xiàng)目中:

    · FastReport.dll;

    · FastReport.Web.dll。

    你可以在FastReport.Net應(yīng)用程序的文件夾中找到它們。

    我決定在站點(diǎn)的主頁(yè)上發(fā)布一個(gè)報(bào)表。因此,我們將使用 HomeController.cs 中的報(bào)表。

    聲明庫(kù):

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using FastReport.Web;
    using System.Web.UI.WebControls;
    

    要使用 Index () 方法,請(qǐng)?zhí)砑右韵麓a:

    public ActionResult Index()
     {
     WebReport webReport = new WebReport();
     
     string report_path = "C:\\Program Files (x86)\\FastReports\\FastReport.Net\\Demos\\Reports\\";
     System.Data.DataSet dataSet = new System.Data.DataSet();
     dataSet.ReadXml(report_path + "nwind.xml");
     webReport.Report.RegisterData(dataSet, "NorthWind");
     webReport.Report.Load(report_path + "Simple List.frx");
     ViewBag.WebReport = webReport;
     return View();
     }
    

    我們考量一下細(xì)節(jié)。在第一行中,我們創(chuàng)建了一個(gè)WebReport類的實(shí)例。

    接下來(lái),創(chuàng)建一個(gè)變量來(lái)存儲(chǔ)包含報(bào)表的文件夾的路徑。對(duì)于該報(bào)表所需的數(shù)據(jù),我們創(chuàng)建一個(gè)數(shù)據(jù)集并加載xml數(shù)據(jù)庫(kù)。

    現(xiàn)在您需要使用 RegisterData () 方法在報(bào)表對(duì)象中注冊(cè)數(shù)據(jù)源。我們使用 Load () 方法來(lái)加載報(bào)表模板。

    ViewBag是對(duì)象ViewData的一個(gè)封裝,用于將數(shù)據(jù)從控制器傳輸?shù)揭晥D。在這種情況下,我們會(huì)將報(bào)表傳送到視圖索引,本質(zhì)上來(lái)講就是主頁(yè)。

    我們轉(zhuǎn)到演示:

    如何在開發(fā)MVC應(yīng)用程序時(shí)使用報(bào)表

    網(wǎng)頁(yè)代碼是:

    @{
     ViewBag.Title = "Home Page";
    }
    @ViewBag.WebReport.GetHtml()
    

    我刪除了不必要的,留下了一個(gè)頁(yè)面標(biāo)題,而我們的報(bào)表,以HTML格式呈現(xiàn)。

    也就是說(shuō),要在頁(yè)面上顯示報(bào)表,只需添加代碼:

    @ ViewBag.WebReport.GetHtml()

    相應(yīng)的控制器會(huì)發(fā)送一個(gè)報(bào)表給它。

    我們需要在視圖初始化中添加腳本:

    <head>
    …
    @WebReportGlobals.Scripts()
    @WebReportGlobals.Styles() 
    …
    </head> 
    

    在我們的例子中,文件 _Layout.cshtml:

    如何在開發(fā)MVC應(yīng)用程序時(shí)使用報(bào)表

    它仍然只是糾正位于Views文件夾中的Web.config。

    我們?yōu)榫W(wǎng)絡(luò)報(bào)表添加命名空間:

    <namespaces>
    …
     <add namespace="FastReport" />
     <add namespace="FastReport.Web" />
     </namespaces>
    

    在項(xiàng)目的根目錄,還有另一個(gè)Web.config。我們往里面添加一個(gè)處理句柄:

     <handlers>
     …
     <add name="FastReportHandler" path="FastReport.Export.axd" verb="*" type="FastReport.Web.Handlers.WebExport"/>
     </handlers>

    運(yùn)行應(yīng)用程序并獲取報(bào)表。

    如何在開發(fā)MVC應(yīng)用程序時(shí)使用報(bào)表

    就這樣,你可以輕松地在MVC項(xiàng)目中使用Web報(bào)表。

    產(chǎn)品介紹 下載試用 | 優(yōu)惠活動(dòng) | 在線客服 | 聯(lián)系Elyn

     

    推薦閱讀

    FastReport 正版授權(quán) 年終促銷6.5折
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();