企业项目实战.Net Core +FastReport教程二|绑定报表数据及自定义功能设置
上一篇,主要讲述利用FastReport如何实现报表模板的制作,地址:企业项目实战.Net Core +FastReport教程一|制作报表模板
报表系列教程目录
-
前言
- 报表是什么?
- 报表的作用是什么?
- 为什么选择 FastReport 报表?
- 报表设计器介绍
- 二次开发报表设计器
- 制作报表模板的步骤
- 定义数据集
- 报表设计
- 报表预览
- 存储报表
- 使用 Asp.net Core
报表常用控件介绍- 添加报表项目类库
- 引入 Nuget 包
- 启用视图与 FastReport 库的支持
- 加载报表
-
功能自定义设置
- 自定义分页
- 导出 Excel
- 打印 PDF
- 常用函数介绍
- 常用参数介绍
- 结语
正文
使用Asp.net Core
添加报表项目类库
(图一)
引入Nuget包
(图二)
启用视图与FastReport库的支持
在应用程序下的StartUp类中的Configure方法,加入UseFastReport方法;
(图三)
注册数据
视图加载报表
注:视图中引入@FastReport.Web.WebReport
@ViewBag.WebReport.RenderSync()
功能自定义设置
自定义分页
通过ajax调用fastreport内置方法,实现局部页面刷新;
视图:
增加一个分页自定义视图,里面有首页、上一页,下一页,尾页,页数,每页条数,共多少条;
脚本:
增加首页、上一页,下一页,尾页四个脚本方法,然后通过ajax调用控制器中的重写方法;
如需具体代码,请加Q一起讨论:2312935133
导出Excel
视图
@Html.ActionLink("导出", "ExportExcel", null, new { @reportName = "xxx" }, 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); } }
打印PDF
视图
@Html.ActionLink("打印", "Print", null, new { @reportName = "xxx" }, new { @class = "样式名称", @id = "按ID",@target="_blank" })
控制器
因开源代码把PDF打印方法阉割,需反编译相关文件,且需把WebReport对象重写,打印代码放到该类中;
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