使用JavaScript脚本插件实现自定义校验器原创
399次浏览
编辑于2024年03月28日 11:32:53
需要提交时对财务应付单的发票分录进行校验,如果分录没有数据,或者发票号值为空,给出提示。
使用合法性校验智能检查发票号有没有值,不能检查有没有分录行,需要写插件实现校验。
直接上实际脚本代码,略过扩展单据、修改提交操作、注册脚本插件的过程。
如下脚本代码,演示了如何使用JavaScript脚本插件实现校验器:
/** * @author Johnny Ting * @date 2024-03-28 */ require("kd.bos.entity.validate.KDValidator"); var plugin = new OperationPlugin({ onPreparePropertys : function(e){ e.getFieldKeys().add("i_invoiceno"); }, onAddValidators : function(e){ e.addValidator(new Validator({ validate: function(){ var objs = this.getDataEntities(); for(var i=0; i<objs.length; i++) { var obj = objs[i].getDataEntity(); var rows = obj.get("inventry"); if (rows.size() == 0) { this.addFatalErrorMessage(objs[i], "发票分录,未采集发票,不能提交"); } else { for(var j = 0; j < rows.size(); j++) { var row = rows.get(j); var invno = row.get("i_invoiceno"); if (invno == null || invno == "" || invno == " " ) { this.addFatalErrorMessage(objs[i], "发票分录,第" + (j+1) + "行,未采集发票,不能提交。"); } } } } } })); } });