电子档案开发指南-套打二次开发
阅读指引:目的在于指导EAS电子档案二次开发人员,正确书写套打功能的集成代码。并对套打预览数据在电子归档过程中进行增加、删除、修改的操作等
1 套打概念
EAS中的套打,并不仅仅是指在印刷好的票据、单据上打印内容的。更为全面而准确的定义,应该是指:自定义格式的票据、单据、报表等数据的打印。其中,自定义格式是指用户可以自己制作模板。由于名称的沿袭,一直采用套打一词。
2 二开实现
二开思路:如果套打query预览数据不满足现场需求时,电子档案归档中提供接口进行对数据的新增、修改、删除等
需实现接口:com.kingdee.bos.ctrl.kdf.data.impl.BOSQueryDelegate#execute方法
参考示例:com.kingdee.eas.el.rec.model.dataprovider.BizCollBillDataProvider
3 具体示例
下面以提供一个样例的方式,介绍如何满足现场在归档时对套打数据加工的需求(和jdk的RowSet雷同)
3.1构造方法(针对web端)
public BizCollBillDataProvider(Context ctx, List id, IMetaDataPK qpk)
参数说明:
ctx | 传下文 |
id | 传入的billId |
IMetaDataPK | 单据pdf的queryPk,可以为空 |
3.2获取数据源RowSet方式
方法一:使用Facde
实现接口:IRowSet execute(BOSQueryDataSource var1);
参数说明:
方法返回值:RowSet
步骤1:需要业务套打Façade
步骤2:打印的单据 、 指定的查询query,返回结果集:rowSet
示例代码
方法二:反射获取RowSet
使用场景:如果已知的Rowset不满足,需要自己查询自定义query,拼凑新的rowSet
1)实现接口:IRowSet execute(BOSQueryDataSource var1);
2)反射获取数据
示例
3.3数据加工
当套打设置属性字段要修改别名/新增列/删除列时
场景一: 更新相关字段别名
示例场景:业务想实现对金额合计转大写的操作
示例代码:
场景二:当RowSet中不包含套打模板中的字段时,需要新增或者删除某字段时
示例代码: