如何在開發(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)到演示:
網(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:
它仍然只是糾正位于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)表。
就這樣,你可以輕松地在MVC項(xiàng)目中使用Web報(bào)表。
產(chǎn)品介紹 | 下載試用 | 優(yōu)惠活動(dòng) | 在線客服 | 聯(lián)系Elyn
推薦閱讀
- FastReport VCL報(bào)表控件開發(fā)者手冊(cè)
- FastReport Online Designer中文手冊(cè)
- Fastreport.Net教程2016
- Fastreport.Net用戶手冊(cè)
- FastReport.Net教程2017(持續(xù)更新中···)
- FastReport Online Designer教程2017(持續(xù)更新中···)
- 報(bào)表教程2017(持續(xù)更新中···)