打印中如何计算多选基础资料字段中数据的个数
1 业务背景
使用打印公式-count(多选基础资料字段),计算结果是1,因为多选基础资料会以每个基础资料内容按分号拼接,然后以文本的形式输出,例如:,所以无法使用count算出准确数据个数
2 解决方案
二开打印插件,在AfterLoadData 事件中获取数据,自己进行计算,具体步骤参考下面:
步骤一:需要打印出差人数的地方,配置上这个出差人字段,以便在AfterLoadData 事件中能把数据加载出来
步骤二:获取出差人字段的标识,可以在afterLoadData事件中断点查看evt -> dataRowSets ->row
步骤三:具体的代码实现参考
package printplugin; import kd.bos.print.core.data.DataRowSet; import kd.bos.print.core.data.datasource.PrtDataSource; import kd.bos.print.core.data.field.Field; import kd.bos.print.core.data.field.TextField; import kd.bos.print.core.plugin.AbstractPrintPlugin; import kd.bos.print.core.plugin.event.AfterLoadDataEvent; import kd.sdk.plugin.Plugin; import java.util.List; /** * 新的打印插件 */ public class printCountpeople extends AbstractPrintPlugin implements Plugin { //出差人名称标识 public static final String PEOPLEKEY="pio1_mulbasedatafield1.name"; @Override public void afterLoadData(AfterLoadDataEvent evt) { PrtDataSource dataSource = evt.getDataSource(); //获取打印数据 List<DataRowSet> dataRowSets = evt.getDataRowSets(); for (DataRowSet dataRowSet : dataRowSets) { //获取出差人的数据 TextField field = (TextField)dataRowSet.getField(PEOPLEKEY); String peopleStr = field.toString(); String[] split = peopleStr.split(";"); //设置出差人数 field.setValue(String.valueOf(split.length)); } } }
步骤四: 插件注册上打印模板
3 适用版本
金蝶云苍穹 V6.0.1及以上
打印中如何计算多选基础资料字段中数据的个数
1 业务背景使用打印公式-count(多选基础资料字段),计算结果是1,因为多选基础资料会以每个基础资料内容按分号拼接,然后以文本的形式输出...
点击下载文档
本文2024-09-23 00:36:03发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-140510.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章