報告生成器FastReport .NET實踐指南:從ASP.Net Core應用程序創建發票
報表生成器FastReport .NET是適用于.NET Core 3,ASP.NET,MVC和Windows窗體的全功能報告庫。使用FastReport .NET,您可以創建獨立于應用程序的.NET報告。
近日,FastReport .Net升級到v2020.3版,在此版本中,添加了瑞士QR碼,允許配置打印機托盤以打印報告的最后一頁,不再支持.NET Framework 2.0,同時修復了多個Bug問題,感興趣的朋友可點擊下方按鈕下載最新版。
很少有人相信微軟新的開源ASP.Net Core框架的成功。這是因為以前的ASP.Net平臺的普及程度較低。但是,很快每個人都意識到了新的跨平臺框架的優勢。如今,ASP.Net Core在Web開發的最佳框架排名中占據較高的位置。許多Web應用程序,網站和在線商店都是使用它創建的。出售商品時,在線商店必須向客戶提供一些文檔。例如,付款發票。
付款發票是非現金付款經常需要的文件之一。因此,如果要創建在線商店或其他銷售系統,則必須向客戶提供發票。
要渲染發票,首先我們需要開發一個文檔設計,在其中填充數據并發送給打印。最好的解決方案是使用報告生成器來創建文檔模板并用數據填充它。用戶應用程序的任務是顯示所需的報告。
沒有開具發票的明確要求-只有建議可以幫助避免客戶誤解。展望未來,我們將考慮將在本文中創建的發票,以便您了解如何處理發票開具。當然,我們并不是說這個模板是最好的。

此圖突出顯示了文檔的重要區域。讓我們解釋一下它們的本質:
- 有關賣方的信息。任何正式文件都應包含有關賣方的信息:姓名,地址,電話,電子郵件,其他信息(可選);
- 有關買方聯系人的信息–必須指出實際負責付款的人;
- 訂單和發票標識符,發票開具和到期日。這些標識符將有助于在數據庫中查找發票或訂單,以防客戶以后有任何疑問。
- 有關訂單內容的信息。您的客戶必須了解他所支付的費用。必須指定貨物的名稱和數量,以及每單位的成本;
- 總量。總金額不僅對于付款是必要的,而且對于理解計算也是必要的;
- 付款詳情。由于這是付款發票,因此應包含收款人詳細信息;
- 國外付款的銀行詳細信息。即使在這種情況下,客戶不是來自國外,您也可以將這些數據保留為統一的格式。
- 解釋性信息。如有疑問,提供聯系方式很重要。您還應該警告延遲付款的后果。這將使客戶不耽誤它。
因此,FastReport.Net報告生成器作為一組庫來提供。在本文中,我們正在考慮在ASP.Net Core應用程序中輸出發票的功能。因此,將使用FastReport.Core庫。實際上,我們不需要開具發票的申請。我們需要的只是報告生成器和數據。但是創建文檔的能力對任何人來說都不是很有趣。能夠將報告系統集成到用戶程序中很重要,這樣報告才能成為單個數據處理系統的一部分。因此,首先我們將創建一個報告模板,然后將其用于在Web應用程序中顯示數據。
在設計器中創建一個報表。你一定見過很多次付款發票--這樣的報表模板并不復雜。看看吧。

在本案例中,數據取自四個表。訂單、訂單詳情、客戶和產品。
主帶--數據--與訂單表相連。這意味著每輸入一個表,就會形成一個新的該帶的實例。 除了右邊的訂單信息,我們還在左邊顯示客戶信息。客戶表通過id與訂單表鏈接。

所以,要提供客戶信息中的數據與當前訂單的對應關系,就要從環節入手。訂單詳情表與訂單表和產品表的關系相同。
訂單信息顯示在數據帶中。它與訂單詳情表有聯系。在一行中顯示:數量、產品名稱、單價、指定數量的價格、稅率和稅額。一個數據帶有頁眉和頁腳帶。表頭顯示在表頭欄中,當總計、付款明細和說明信息顯示在頁腳欄中時,表頭顯示在頁腳欄中。
小計是在一個表記錄內,通過在文本字段中乘以或匯總表字段來計算的:[[小計]*5/100]。或者,使用報告變量。

總計,是根據列使用特殊表達式--總計來計算的。

每個總計都有設置--操作類型、表字段或表達式、波段(總計的顯示位置)等。

如果數據意味著同時渲染幾張發票,則需要在一個單獨的頁面上渲染每張發票。為此,你需要在DataBand中包含StartNewPage = True屬性。

這就完成了最困難的部分--報表的創建。現在讓我們進入我們的ASP.Net Core應用程序。您需要使用NuGet將FasReport.Net庫添加到您的項目中。

連接Startup.cs中的FastReport庫。
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { … app.UseFastReport(); … }
現在,您可以將報告生成添加到控制器中:
private IHostingEnvironment _env; public HomeController(IHostingEnvironment env) { _env = env; }
在類中注入IHostingEnvironment接口,得到我們保存報表的wwwroot目錄的路徑。在你需要的方法中創建報表對象,將數據和報表模板載入其中。
public IActionResult Index() { var rootpath = _env.WebRootPath; var report = new WebReport(); var data = new DataSet(); data.ReadXml(rootpath + "/App_Data/nwind.xml"); report.Report.Load(rootpath + "/App_Data/Invoice.frx"); report.Report.RegisterData(data); ViewBag.WebReport = report; return View(); }
將報告渲染添加到索引視圖中。
@await ViewBag.WebReport.Render()
現在,如果你運行該應用程序,你將在瀏覽器中看到你的報告。

因此,您可以從您的Web應用程序中快速創建付款發票。請看頂部的工具欄。它包含了報告控件,讓你不僅可以查看報告頁面,還可以將其發送打印或導出為流行的文檔格式之一。PDF, DOCX, XML, XPS, ODT, TXT, CSV, RTF.
雖然FastReport Open Source是非常強大的,但仍然有許多限制,你可以點擊下方鏈接查看具體差異。
【功能對比】報表開發工具FastReport Open Source和FastReport .NET都有哪些差異和限制
FastReport Open Source與FastReport .Net間的功能差異還是非常明顯的,如果您是企業用戶或是需要更完整的功能,建議您直接購買FastReport .Net,盛夏狂歡,在線下單立享85折起!點擊查看優惠價格,或咨詢在線客服了解詳情。