上一篇,主要講述利用FastReport如何實現報表模板的制作,地址:企業項目實戰.Net Core +FastReport教程一|制作報表模板
報表系列教程目錄
-
前言
-
報表是什么?
- 報表的作用是什么?
- 為什么選擇 FastReport 報表?
-
- 報表設計器介紹
-
二次開發報表設計器
- 制作報表模板的步驟
- 定義數據集
- 報表設計
- 報表預覽
- 存儲報表
-
- 使用 Asp.net Core
報表常用控件介紹- 添加報表項目類庫
-
引入 Nuget 包
- 啟用視圖與 FastReport 庫的支持
-
加載報表
-
功能自定義設置
-
自定義分頁
- 導出 Excel
- 導出 Word
- 打印 PDF
-
- 常用函數介紹
- 常用參數介紹
- 結語
正文
使用Asp.net Core
添加報表項目類庫
(圖一)
引入Nuget包
(圖二)
啟用視圖與FastReport庫的支持
在應用程序下的StartUp類中的Configure方法,加入UseFastReport方法;
(圖三)
注冊數據
視圖加載報表
注:視圖中引入@FastReport.Web.WebReport
@ViewBag.WebReport.RenderSync()
功能自定義設置
自定義分頁
通過ajax調用fastreport內置方法,實現局部頁面刷新;
視圖:
增加一個分頁自定義視圖,里面有首頁、上一頁,下一頁,尾頁,頁數,每頁條數,共多少條;
腳本:
增加首頁、上一頁,下一頁,尾頁四個腳本方法,然后通過ajax調用控制器中的重寫方法;
如需具體代碼,請加Q一起討論:2312935133
注:因開源代碼把導出及打印相關方法閹割,需反編譯相關文件,且需把相關代碼放到重寫的WebReport對象中;
導出Excel
視圖
@Html.ActionLink("導出", "ExportExcel", null, new { @reportName = "" }, new { @class = "樣式名稱", @id = "按鈕ID" })
控制器
public FileResult ExportExcel() { FastReport.Export.OoXML.Excel2007Export xlsExport = new FastReport.Export.OoXML.Excel2007Export(); xlsExport.ShowProgress = false; using (var ms = new MemoryStream()) { xlsExport.Export(report.Report, ms); ms.Position = 0; var xlsFileName = "Demo-" + DateTime.Now.ToString("HH-mm-ss") + ".xlsx"; return File(ms.ToArray(), "application/vnd.ms-excel", xlsFileName); } }
導出Word
視圖
@Html.ActionLink("導出", "ExportWord", null, new { @reportName = "" }, new { @class = "樣式名稱", @id = "exportID" })
控制器
public FileResult ExportWord() { FastReport.Export.OoXML.Word2007Export wordExport = new FastReport.Export.OoXML.Word2007Export(); wordExport.ShowProgress = false; using (var ms = new MemoryStream()) { wordExport.Export(report.Report, ms); ms.Position = 0; var xlsFileName = "導出word名稱" + DateTime.Now.ToString("HH-mm-ss") + ".docx"; return File(ms.ToArray(), "application/vnd.ms-word", xlsFileName); } }
打印PDF
視圖
@Html.ActionLink("打印", "Print", null, new { @reportName = "" }, new { @class = "樣式名稱", @id = "按ID",@target="_blank" })
控制器
public IActionResult PrintPdf() { using (var pdfExport = new PdfExport()) { pdfExport.OpenAfterExport = false; pdfExport.ShowPrintDialog = true; pdfExport.ExportMode = PdfExport.ExportType.WebPrint; using (MemoryStream ms = new MemoryStream()) { pdfExport.Export(Report, ms); return new FileContentResult(ms.ToArray(), "application/pdf"); } } }
然后在控制器中創建Print方法后,直接點出該打印方法即可,如下圖:
public IActionResult Print() { return report.PrintPdf(); }
結語
本次系列教程來源於項目實戰,開發內容全部基於Fastreport開源代碼且部分功能是經過DLL反編譯實現,有些功能還在實踐摸索中,后續教程會不定期發布。
加Q一起來討論:2312935133
FastReport開源代碼地址:https://github.com/FastReports/FastReport
FastReport的Demo項目地址:https://pan.baidu.com/s/1_pLh5zP4eUhyr8usL496ew 提取碼: ha1e