86 lines
3.3 KiB
C#
86 lines
3.3 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Text;
|
|||
|
|
using System.Threading.Tasks;
|
|||
|
|
using Kingdee.BOS;
|
|||
|
|
using Kingdee.BOS.Core;
|
|||
|
|
//服务端
|
|||
|
|
using Kingdee.BOS.Core.DynamicForm.PlugIn;
|
|||
|
|
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
|
|||
|
|
//校验器
|
|||
|
|
using Kingdee.BOS.Core.Validation;
|
|||
|
|
using System.ComponentModel;
|
|||
|
|
|
|||
|
|
|
|||
|
|
namespace aoyuPlugIn
|
|||
|
|
{
|
|||
|
|
[Description("校验器")]
|
|||
|
|
[Kingdee.BOS.Util.HotUpdate]
|
|||
|
|
|
|||
|
|
//继承操作服务插件
|
|||
|
|
public class OnAddValidatorsHead:AbstractOperationServicePlugIn
|
|||
|
|
{
|
|||
|
|
//OnPreparePropertys 数据加载前,确保需要的属性被加载
|
|||
|
|
//因为需要读取采购员信息,先必须加载
|
|||
|
|
public override void OnPreparePropertys(PreparePropertysEventArgs e)
|
|||
|
|
{
|
|||
|
|
base.OnPreparePropertys(e);
|
|||
|
|
//采购员FPurchaserId
|
|||
|
|
e.FieldKeys.Add("FPurchaserId");
|
|||
|
|
//单据编号FBillNo
|
|||
|
|
e.FieldKeys.Add("FBillNo");
|
|||
|
|
|
|||
|
|
//加载复选框 F_PAEZ_CheckBox
|
|||
|
|
e.FieldKeys.Add("F_PAEZ_CheckBox");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//OnAddValidators操作执行前,加载操作校验器
|
|||
|
|
public override void OnAddValidators(AddValidatorsEventArgs e)
|
|||
|
|
{
|
|||
|
|
base.OnAddValidators(e);
|
|||
|
|
TestValidator validator = new TestValidator();
|
|||
|
|
//是否需要校验,true需要
|
|||
|
|
validator.AlwaysValidate = true;
|
|||
|
|
//校验单据头FBillHead
|
|||
|
|
validator.EntityKey = "FBillHead";
|
|||
|
|
|
|||
|
|
//校验单据体FPOOrderEntry
|
|||
|
|
validator.EntityKey = "FPOOrderEntry";
|
|||
|
|
|
|||
|
|
//加载校验器
|
|||
|
|
e.Validators.Add(validator);
|
|||
|
|
}
|
|||
|
|
//自定义校验器.派生:AbstractValidator
|
|||
|
|
private class TestValidator:AbstractValidator
|
|||
|
|
{
|
|||
|
|
//重写方法
|
|||
|
|
//数组ExtendedDataEntity,传递全部的信息
|
|||
|
|
public override void Validate(ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Context ctx)
|
|||
|
|
{ //for循环,读取数据
|
|||
|
|
foreach (ExtendedDataEntity obj in dataEntities)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
//判断复选框是否勾选
|
|||
|
|
if (!(bool)obj.DataEntity["F_PAEZ_CheckBox"])
|
|||
|
|
{ //报错
|
|||
|
|
validateContext.AddError(obj.DataEntity,
|
|||
|
|
new ValidationErrorInfo
|
|||
|
|
("",//出错的字段Key,可以空
|
|||
|
|
obj.DataEntity["Id"].ToString(),// 数据包内码,必填,后续操作会据此内码避开此数据包
|
|||
|
|
obj.DataEntityIndex, // 出错的数据包在全部数据包中的顺序
|
|||
|
|
obj.RowIndex,// 出错的数据行在全部数据行中的顺序,如果校验基于单据头,此为0
|
|||
|
|
"001",//错误编码,可以任意设定一个字符,主要用于追查错误来源
|
|||
|
|
"单据编号" + obj.BillNo + "第" + obj.RowIndex + "行没有选择复选框",// 错误的详细提示信息
|
|||
|
|
"审核:" + obj.BillNo,// 错误的简明提示信息
|
|||
|
|
ErrorLevel.Error// 错误级别:警告、错误...
|
|||
|
|
));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|