本文介绍一下开源报表项目FastReport.OpenSource在前后端分离项目中引入的方法与具体使用。
开发环境
后端:VS2019、.net core3.1 、WebApi
前端: vue-element-admin
后端的开发
1. 用vs2019搭建一个.net core3.1以上版本的WebAPI项目
2. 用nuget安装FastReport.OpenSource
注意,FastReport.OpenSource.Web与FastReport.OpenSource两个均要安装上
3. 在appsettings.json中配置报表模板路径
这里还有一个报表数据源生成路径。因为本项目是由前端把要打印的数据实体传到后端生成json数据源文件
4. 相关工作
a. 建立ReportItem报表项目实体,开发ReportItem的增、删、改、查接口及界面。这个比较容易实现,不作展开说明。
b. 在网上下载fastreport.net程序进行安装,在demo中另存一个空白的模板文件,比如blank.frx, 然后开发一个windows的模板设计程序
5. 新增API控制器及开发有关接口
是的,是新增API控制器,不是mvc控制器
预览接口Preview中数据源是将json文件反序列化为DataSet, 为了能成功的反序列化在前端应注意一下生成json文件的实体结构,这一点会在前端部分提到
前端
1. 调用API将要打印的数据实体在服务端生成json文件
这里需要注意一下实体结构,因为服务端会将json文件内容转换为DataSet作为FastReport的数据源,所以这里要注意一下实体结构以方便服务端能正确的通过JsonConvert.DeserializeObject<DataSet>(jsonText)
实体结构形如:
{
表名1: [],
表名2: [],
表名3: []
}
2. 调用API打开预览页
预览效果如下:
其他:以上仅列出了大体思路和主要实现代码,具体项目中需要大家自行去完善扩充。项目中也没有提到如何设计报表模板,这要求大家对FastReport.net有基本的认识,本文不是fastReport的入门介绍。(原创作者:易国轩)
设计报表心得:在设计器中预览效果好好的,但在web中预览效果就差好多,主要表现在框中的字体挨着框线了,
网友评论