如何打印工作流中节点参与人的签章
1案例介绍
目前打印工作流审批线路只能打印固定的任务属性,参与人显示信息,节点名称,审批人,审批时间,审批意见,审批通过规则,审批结果这些字段,那如何打印出工作流中的其他信息呢?该案例介绍了如何通过插件实现打印出工作流中参与人的签章图片。
2适用版本
金蝶云苍穹4.0.012及以上
3模板配置
3.1增加签名字段
在开发平台,人员基础资料扩展后,添加签章图片字段。
3.2模板设计
1、拖入一个数据表格,数据源绑定工作流的审批线路
2、在需要显示的位置预留审批人签字的
3.2注册插件
创建插件类WFUserSignaturePrintTestPlugin,并继承AbstractPrintPlugin打印插件基类。(基类全路径kd.bos.print.core.plugin.AbstractPrintPlugin)
/** * 打印工作流参与人签章(人员扩展的一个图片字段) */ public class WFUserSignaturePrintTestPlugin extends AbstractPrintPlugin { //工作流-审批线路数据源=formId+.workflow.approveline private static final String wfsDs = "glddycs.workflow.approveline"; /** * 数据加载后事件,根据工作流-审批线路数据,查询对应的人员签章信息,再填充入审批线路集合 * @param evt */ @Override public void afterLoadData(AfterLoadDataEvent evt) { super.afterLoadData(evt); PrtDataSource dataSource = evt.getDataSource(); if(dataSource==null){ return; } //非工作流直接返回 if(!StringUtils.equals(dataSource.getDsName(),wfsDs)){ return; } //数据源集合 List<DataRowSet> dataRowSets = evt.getDataRowSets(); for (DataRowSet dataRowSet : dataRowSets) { //获取任务ID Field taskIdField = dataRowSet.getField("taskId"); if(taskIdField==null){ continue; } long taskId = Long.parseLong(String.valueOf(taskIdField)); //通过任务ID查询工作流的历史参与人基础资料对应记录,其中含有参与人ID DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingleFromCache("wf_hiparticipant", "userid", new QFilter[]{new QFilter("taskid", QFilter.equals, taskId)}); if(dynamicObject==null){ continue; } //获取参与人ID Object userid = dynamicObject.get("userid"); //通过参与人ID查询该用户签章信息 DynamicObject user = BusinessDataServiceHelper.loadSingleFromCache(userid, "bos_user", "signature"); if(user==null){ continue; } //将签章信息设置进数据集合 String extPictureUrl = user.getString("signature"); Field picField = new ImageField(extPictureUrl); dataRowSet.put("signature",picField); } } /** * 控件输出前事件-数据表格输出前-设置数据行签章单元格绑定工作流审批线路中新填充的签章字段 * @param evt */ @Override public void beforeOutputWidget(BeforeOutputWidgetEvent evt) { super.beforeOutputWidget(evt); if(!(evt instanceof BeforeOutputGridEvent)){ return; } BeforeOutputGridEvent gridEvent = (BeforeOutputGridEvent) evt; PWGridBo pwGridBo = gridEvent.getGrid(); //非工作流直接返回 if(!StringUtils.equals(pwGridBo.getDataSource(),wfsDs)){ return; } //获取数据行 PWGridRowBo row = pwGridBo.getRow(1); //获取签章单元格 PWGridCellBo cell = row.getCell(8); //设置单元格绑定工作流数据源中的签章 cell.setCellValue(wfsDs,"signature"); } }
3.4效果预览
每个审批节点若有上传签名,在打印时即可展示签名图片。
如何打印工作流中节点参与人的签章
1案例介绍目前打印工作流审批线路只能打印固定的任务属性,参与人显示信息,节点名称,审批人,审批时间,审批意见,审批通过规则,审批结...
点击下载文档
上一篇:修改时重新编码参数说明下一篇:启动条件
本文2024-09-23 00:36:43发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-140583.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章