发布: 更新时间:2024-07-10 08:53:18
在一些报表模块中,需要根据用户操作的名称,动态更新报表的签名图片,也就是电子手写签名效果。本篇随笔将介绍如何使用FastReport报表实现动态更新人员签名图片。
例如,我们设计了以上的FastReport报表。其中签字盖章的部分,我们使用图片组件来承载相关医生的电子签名。电子签名的图片根据数据库记录的图片地址进行生成时刻的替换。
报表以PDF的方式生成,手机端利用PDF.js库可以查看PDF文件。
在设计时,我们用一张默认图片代替签名效果。我们切换报表的C#代码部分,来实现报表签名的动态更新。
各个部分的图片替换处理逻辑是一样的,都是首先根据传递的参数名称,来设置图片的路径即可。
FastReport报表呈现,可以赋值参数,以及数据源等。我们可以通过数据库获取到图片信息后,将其赋值给参数名称,以及数据记录作为数据源绑定到报表。
然后封装一个根据医生名称,读取数据库图片地址的函数,如下所示。
接着就是把这些图片地址作为对应医生的参数赋值到字典集合。
而处方单的记录,我们可以构建一个DataTable的数据集合,根据数据库记录写入DataTable赋值即可。
有了参数和数据源,赋值给报表对象进行处理即可,如下代码。
最后使用PDFExport生成PDF文件,如下所示。
生成PDF文件,我们在服务端的API接口返回路径给pdf.js前端处理显示。
最后报表的H5界面显示效果如下。
以上就是基于FastReport对报表处理的过程。FastReport还可以用在Winform、Vue的BS端,以及WPF应用程序上。因此,利用FastReport设计的报表可以在多个终端上重用,非常方便。