Files
Gatedge.HuiWei.BOS.JJGZMJ/aoyuPlugIn/服务插件校验数据/OnAddValidatorsHead.cs
2025-06-20 09:17:36 +08:00

86 lines
3.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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// 错误级别:警告、错误...
));
}
}
}
}
}
}