企业项目实战.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