电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

onAddValidators事件

来源:金蝶云社区作者:金蝶2024-09-235

onAddValidators事件

1 事件介绍

插件可以在此事件,增加自定义操作校验器,或者去掉内置的校验器。


2 事件触发时机

构建好操作校验器之后,执行操作校验之前,触发此事件。


3 代码模板

package kd.bos.plugin.sample.bill.bizoperation.template;
 
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
import kd.bos.entity.plugin.AddValidatorsEventArgs;
 
public class OnAddValidators extends AbstractOperationServicePlugIn {
 
    @Override
    public void onAddValidators(AddValidatorsEventArgs e) {
         // TODO 在此添加业务逻辑
    }
}


4 参数说明

public class AddValidatorsEventArgs

  • public List<AbstractValidator> getValidators():预置的校验器;

  • public void addValidator(AbstractValidator validator):添加自定义校验器;

  • public DynamicObject[] getDataEntities():本次操作、待校验的数据包。


5 应用示例

5.1 案例说明

1. 单据体中有”最迟送货日期”字段,子单据体中有”预计送货日期”字段;

2. 预计送货日期,不能晚于最迟送货日期;

3. 如果不满足此条件,该单不允许继续操作;

4. 批量操作单据时,把不满足条件的单据剔除出去;其他满足条件的单据,可以继续操作。


5.2 实现方案

1. 捕获 onPreparePropertys事件,要求加载预计送货日期、最迟送货日期字段;

2. 捕获 onAddValidators事件,添加自定义校验器;

3. 实现自定义校验器,对预计送货日期、最迟送货日期,进行比较。


5.3 实例代码

package kd.bos.plugin.sample.bill.bizoperation.bizcase;
 
import java.text.SimpleDateFormat;
import java.util.Date;
 
import kd.bos.entity.ExtendedDataEntity;
import kd.bos.entity.formula.RowDataModel;
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
import kd.bos.entity.plugin.AddValidatorsEventArgs;
import kd.bos.entity.plugin.PreparePropertysEventArgs;
import kd.bos.entity.validate.AbstractValidator;
 
public class OnAddValidatorsSample extends AbstractOperationServicePlugIn {
   
    /**
     * 操作执行前,准备加载单据数据之前,触发此事件
     * @remark
     * 插件可以在此事件中,指定需要加载的字段
     */
    @Override
    public void onPreparePropertys(PreparePropertysEventArgs e) {
         // 要求加载预计送货日期、最迟送货日期字段
         e.getFieldKeys().add(DelivaryDateValidator.KEY_DELIVERYDATE);
         e.getFieldKeys().add(DelivaryDateValidator.KEY_LASTDATE);
    }
 
    /**
     * 执行操作校验前,触发此事件
     * @remark
     * 插件可以在此事件,调整预置的操作校验器;或者增加自定义操作校验器
     */
    @Override
    public void onAddValidators(AddValidatorsEventArgs e) {
         // 添加自定义的校验器:送货日期校验器
         e.addValidator(new DelivaryDateValidator());
    }
}
 
/**
 * 自定义操作校验器:校验送货日期
 *
 * @author rd_JohnnyDing
  */
class DelivaryDateValidator extends AbstractValidator {
 
    /** 预计送货日期字段标识 */
    public final static String KEY_DELIVERYDATE = "deliverydate";
    /** 最迟送货日期字段标识 */
    public final static String KEY_LASTDATE = "lastdate";
   
    /**
     * 返回校验器的主实体:系统将自动对此实体数据,逐行进行校验
     */
    @Override
    public String getEntityKey() {
         return this.entityKey;
    }
 

onAddValidators事件

1 事件介绍插件可以在此事件,增加自定义操作校验器,或者去掉内置的校验器。2 事件触发时机构建好操作校验器之后,执行操作校验之前,触...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信