翻譯|使用教程|編輯:王香|2019-02-22 09:47:08.000|閱讀 556 次
概述:FastReport.OpenSource已經(jīng)吸引了很多開發(fā)人員的興趣。這是一個歷史悠久的偉大的報表生成器。開源版本是FastReport.Core,它出現(xiàn)在2018年初,但有一些限制。即 - 減少導(dǎo)出。因此,我們只能使用以下格式:
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
FastReport.OpenSource已經(jīng)吸引了很多開發(fā)人員的興趣。這是一個歷史悠久的偉大的報表生成器。開源版本是FastReport.Core,它出現(xiàn)在2018年初,但有一些限制。即 - 減少導(dǎo)出。因此,我們只能使用以下格式:
HTML,BMP,PNG,JPEG,GIF,TIFF,EMF。 當(dāng)然,這很少。WebReport對象以html格式顯示報表,因此保留了該報表。 值得注意的是,在WebReport對象中,我們只能將報表保存為fpx預(yù)覽格式。
因此,您必須從應(yīng)用程序代碼導(dǎo)出報表。讓我們來看看它的例子如何。 我將詳細(xì)描述創(chuàng)建演示應(yīng)用程序的整個過程,以便您可以根據(jù)需要重復(fù)。 創(chuàng)建一個ASP .Net Core 2.0項目。接下來,我們從NuGet存儲庫添加包:FastReport.OpenSource和FastReport.OpenSource.Web。 現(xiàn)在,您需要將FastReport庫的使用添加到Startup.cs文件中 我們來使用索引視圖。像這樣改變它:
@using (Html.BeginForm("Save", "Home", FormMethod.Get)) { <input id="save" type="submit" value="Save report in HTML" /> } <div> <img src ='@Url.Action("GetImage")'> </div>
我們將以圖片格式顯示報表,以及以HTML格式下載報告的鏈接。 最初,我們將有一個下載按鈕,啟動報告文件html的形成。然后是圖像。但是它的文件將從控制器中的GetImage方法動態(tài)生成。 我們?nèi)omeController.cs控制器。我們需要這些庫:
using System.IO; using System.Diagnostics; using Microsoft.AspNetCore.Mvc; using OpenSourceReportExport.Models; using FastReport; using FastReport.Export.Image; using FastReport.Export.Html; using System.Data; using Microsoft.AspNetCore.Hosting;
要在服務(wù)器上設(shè)置正確的文件路徑,我們使用IHostingEnvironment接口。為此,我們將IHostingEnvironment類型的對象傳遞給控制器??的構(gòu)造函數(shù)。
public HomeController(IHostingEnvironment hostingEnvironment) { _hostingEnvironment = hostingEnvironment; } private IHostingEnvironment _hostingEnvironment;
索引方法保持不變:
public IActionResult Index() { return View(); }
添加新方法以將報告作為圖像。所以我們將導(dǎo)出到圖像,例如jpeg格式:
public IActionResult GetImage() { // Creatint the Report object using (Report report = new Report()) { string path = _hostingEnvironment.WebRootPath; // Loading a report report.Load(path + "\\App_Data\\Master-Detail.frx"); DataSet data = new DataSet(); data.ReadXml(path + "\\App_Data\\nwind.xml"); //Open xml database report.RegisterData(data, "NorthWind"); //Register data source in the report report.Prepare();// Preparing a report // Creating the Image export using (ImageExport image = new ImageExport()) { image.ImageFormat = ImageExportFormat.Jpeg; image.JpegQuality = 100; // Set up the quality image.Resolution = 100; // Set up a resolution image.SeparateFiles = false; // We need all pages in one big single file using (MemoryStream st = new MemoryStream())// Using stream to save export { report.Export(image, st); return base.File(st.ToArray(), "image/jpeg"); } } } }
第二種方法是以html格式保存導(dǎo)出報表。粗略地說,這種方法與前一種方法幾乎相同。
[HttpGet] public ActionResult Save() { using (Report report = new Report()) { string path = _hostingEnvironment.WebRootPath; // Loading a report report.Load(path + "\\App_Data\\Master-Detail.frx"); DataSet data = new DataSet(); data.ReadXml(path + "\\App_Data\\nwind.xml"); //Open xml database report.RegisterData(data, "NorthWind"); //Register data source in the report report.Prepare();// Preparing a report // Creating the HTML export using (HTMLExport html = new HTMLExport()) { using (FileStream st = new FileStream(path + "\\App_Data\\test.html", FileMode.Create)) { report.Export(html, st); return File("App_Data/test.html", "application/octet-stream", "Test.html"); } } } }
在這個方法中我們得到了一個html文件。這意味著其中不會有圖片。要使用圖像保存html文件,您需要將文件保存在循環(huán)中。可以在FastReport Open Source文檔中找到此類導(dǎo)出的示例:
//fastreports.github.io/FastReport.Documentation/Exporting.html。
讓我們運行我們的應(yīng)用程序:
該圖像包含所有報表頁面,因為我們設(shè)置了SeparateFiles屬性= false。否則,您必須顯示多個文件。
按下HTML中的保存報表按鈕:
該文件由瀏覽器自動加載。 就這樣。如您所見,F(xiàn)astReport Open Source中的代碼導(dǎo)出實現(xiàn)與FastReport.Core沒有區(qū)別。
購買FastReport.Net正版授權(quán),請點擊“”喲!
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn