翻譯|使用教程|編輯:王香|2019-02-22 09:47:08.000|閱讀 556 次
概述:FastReport.OpenSource已經吸引了很多開發人員的興趣。這是一個歷史悠久的偉大的報表生成器。開源版本是FastReport.Core,它出現在2018年初,但有一些限制。即 - 減少導出。因此,我們只能使用以下格式:
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
FastReport.OpenSource已經吸引了很多開發人員的興趣。這是一個歷史悠久的偉大的報表生成器。開源版本是FastReport.Core,它出現在2018年初,但有一些限制。即 - 減少導出。因此,我們只能使用以下格式:
HTML,BMP,PNG,JPEG,GIF,TIFF,EMF。 當然,這很少。WebReport對象以html格式顯示報表,因此保留了該報表。 值得注意的是,在WebReport對象中,我們只能將報表保存為fpx預覽格式。
因此,您必須從應用程序代碼導出報表。讓我們來看看它的例子如何。 我將詳細描述創建演示應用程序的整個過程,以便您可以根據需要重復。 創建一個ASP .Net Core 2.0項目。接下來,我們從NuGet存儲庫添加包:FastReport.OpenSource和FastReport.OpenSource.Web。 現在,您需要將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方法動態生成。 我們去HomeController.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;
要在服務器上設置正確的文件路徑,我們使用IHostingEnvironment接口。為此,我們將IHostingEnvironment類型的對象傳遞給控制器??的構造函數。
public HomeController(IHostingEnvironment hostingEnvironment) { _hostingEnvironment = hostingEnvironment; } private IHostingEnvironment _hostingEnvironment;
索引方法保持不變:
public IActionResult Index() { return View(); }
添加新方法以將報告作為圖像。所以我們將導出到圖像,例如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格式保存導出報表。粗略地說,這種方法與前一種方法幾乎相同。
[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文件,您需要將文件保存在循環中??梢栽贔astReport Open Source文檔中找到此類導出的示例:
//fastreports.github.io/FastReport.Documentation/Exporting.html。
讓我們運行我們的應用程序:
該圖像包含所有報表頁面,因為我們設置了SeparateFiles屬性= false。否則,您必須顯示多個文件。
按下HTML中的保存報表按鈕:
該文件由瀏覽器自動加載。 就這樣。如您所見,FastReport Open Source中的代碼導出實現與FastReport.Core沒有區別。
購買FastReport.Net正版授權,請點擊“”喲!
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn