42.2、操作服务插件,校验器,OnAddValidators,单据头,必录原创
12人赞赏了该文章
1.3万次浏览
编辑于2020年07月12日 00:34:59
业务场景:校验单据,采购订单,采购员,必须录入,否则不允许提交审核;
续
1、
//OnAddValidators操作执行前,加载操作校验器 public override void OnAddValidators(AddValidatorsEventArgs e) { base.OnAddValidators(e); TestValidator validator = new TestValidator(); //是否需要校验,true需要 validator.AlwaysValidate = true; //校验单据头FBillHead validator.EntityKey = "FBillHead"; //加载校验器 e.Validators.Add(validator); }
1.1、
//自定义校验器.派生:AbstractValidator private class TestValidator:AbstractValidator { //重写方法 //数组ExtendedDataEntity,传递全部的信息 public override void Validate(ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Context ctx) { //for循环,读取数据 foreach (ExtendedDataEntity obj in dataEntities) { //采购员PurchaserId object PurchaserId = obj.DataEntity["PurchaserId"]; //采购员是否为空 if(PurchaserId == null) { //报错 validateContext.AddError(obj.DataEntity, new ValidationErrorInfo ("PurchaserId",//出错的字段Key,可以空 obj.DataEntity["Id"].ToString(),// 出错的字段Key,可以空 obj.DataEntityIndex, // 出错的数据包在全部数据包中的顺序 obj.RowIndex,// 出错的数据行在全部数据行中的顺序,如果校验基于单据头,此为0 "001",//错误编码,可以任意设定一个字符,主要用于追查错误来源 "单据编号" + obj.BillNo + "采购订单没有录入采购员",//错误的详细提示信息 "提交" + obj.BillNo,// 错误的简明提示信息 Kingdee.BOS.Core.Validation.ErrorLevel.Error// 错误级别:警告、错误... )); } } }
2、注册插件
扩展采购订单,点编辑,批量编辑字段属性,操作列表,选择保存,编辑,其他控制,服务插件
3、最终效果,打开采购订单,没有填写采购员,报错
----------------------------------
4、保存取消插件,改成提交
5、列表也可以生效
1、不是在前台校验,是发送到服务器端校验;
2、服务插件只需要写一次,列表插件和表单插件需要分别写;
总目录链接
https://vip.kingdee.com/article/64993872014591232
42.zip(58.18KB)
赞 12
12人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读