标签:
打印、排序
需求背景:
需求背景:例如列表有10条数据,批量打印时用户希望根据暂存、已提交、已审核顺序进行打印。
实现方案:
通过打印插件进行干预:在插件中获取导套打数据源,将数据按照自定义规则进行排序。
操作步骤:
1.新建打印模板
2.配置打印模板
3.注册打印插件
kd.bos.poc.formplugin.PrintPlugin
插件代码参考附件。
实现效果:
【插件干预前】:将按列表顺序打印
【插件干预后】:将按暂存,已提交,已审核重排序后打印。
附件:
public class PrintPlugin extends AbstractPrintServicePlugin{
public void beforeLoadData(BeforeLoadDataArgs e) {
String soure =e.getDataSourceName();
if("entryentity".equalsIgnoreCase(soure)) {
e.setCancel(true);
}
}
public void customPrintDataEntities(CustomPrintDataEntitiesArgs e) {
e.getDataEntities().sort(new Comparator<DynamicObject>(){
@Override
public int compare(DynamicObject arg0, DynamicObject arg1) {
return arg1.get("billstatus").toString().compareTo(arg0.get("billstatus").toString());//根据单据上的某个字段排序
}
});
}
}
推荐阅读