1. 概述
1.1 问题描述
打印时,有时想清楚的知道,哪些报表在什么时间被打印的信息,并将其记录到数据库的一张记录表中,以方便查看相关信息。一般地,点击打印后就会直接触发打印事件,即点击打印就是执行打印的状态。至于点击打印后,可能出现的未打印情况,这些就涉及到打印机设备等等的一些情况导致,这边就不以叙说。以整个工程,如 webroot(有很多报表)中,在浏览器中对其中的报表预览时,点击打印后将其打印信息记录到库表中为例。
1.2 实现思路
FineReport10.0 中,可通过「服务器>服务器配置>分页预览设置」,添加“打印后”事件进行编辑,选择提交入库,然后会将其执行打印的报表名和打印的时间信息回写到库表中。
2. 示例
2.1 新建信息表
新建一张记录信息表,如:在 FRDemo 数据库中新建一张表,命名为【表1】。其中输入两个字段:date 和 tableName,类型都为“文本类型”。
2.2 添加打印后事件
点击「服务器>服务器配置」,选择分页预览设置选项,进入分页预览设置窗口。在右边栏中,点击添加“打印后”事件,如下图所示:
选择提交入库及选择其信息记录表,且点击智能添加字段后,如上在 date 中输入公式:=today() 获取当前日期,在 tablename 中输入公式:=reportName 获取当前打印的报表。
3.3 预览效果
3.3.1 PC 端
如上设置完后,当点击某个模板的打印按钮时,就会将打印报表的日期以及模板名称记录到表中,可在数据库表中查看到这些信息。
3.3.2 移动端
不支持移动端。