企業項目實戰.Net Core +FastReport教程二|綁定報表數據及自定義功能設置


上一篇,主要講述利用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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM