【已解决】给自定义按钮开发的校验器为啥不能显示校验...
金蝶云社区-yangyong_yy
yangyong_yy
0人赞赏了该文章 1,472次浏览 未经作者许可,禁止转载编辑于2015年12月10日 15:12:14

在单据上面加了一个按钮,并写了校验器,但是当没通过校验时却不能提示信息,以为在给保存操作开发校验器的时候用的也是相同的代码,请大神指点。。。。(调试是可以进入校验器的)
另外也向大神请教下ValidationErrorInfo类中的各个参数的含义

[code] [Description("供应商评审-评审完成服务插件")]
public class SupReviewOverServicePlugIn : AbstractOperationServicePlugIn
{
public override void OnPreparePropertys(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.PreparePropertysEventArgs e)
{
base.OnPreparePropertys(e);
e.FieldKeys.Add("FCreatorId");//创建人
}
public override void OnAddValidators(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AddValidatorsEventArgs e)
{
base.OnAddValidators(e);
SupReviewValidator supReviewValidator = new SupReviewValidator();
supReviewValidator.AlwaysValidate = true;
supReviewValidator.EntityKey = "FBillHead";
e.Validators.Add(supReviewValidator);
}
public override void EndOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EndOperationTransactionArgs e)
{
base.EndOperationTransaction(e);
foreach (DynamicObject obj in e.DataEntitys)
{
string FBillNo = obj["BillNo"].ToString();
StringBuilder sbSql = new StringBuilder();
sbSql.Append("update ");
sbSql.Append("TPT_FZC_SupReview ");
sbSql.Append("set FREVIEWSTATUS = 3 ");
sbSql.Append("where FBillNo=@FBillNo");
IList paras = new List();
paras.Add(new SqlParam("@FBillNo", KDDbType.String, FBillNo));
DBUtils.Execute(this.Context, sbSql.ToString(), paras);
}
}
}
//供应商评审校验器:只有制单人才能点击【评审完成】,【撤销评审完成按钮】
class SupReviewValidator : AbstractValidator
{
public override void Validate(Kingdee.BOS.Core.ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Kingdee.BOS.Context ctx)
{
//循环获取每张单据数据
foreach (ExtendedDataEntity dataEntity in dataEntities)
{
DynamicObject creatorObj = dataEntity.DataEntity["FCreatorId"] as DynamicObject;
long userId = Convert.ToInt64(creatorObj["Id"]);
if (userId != this.Context.UserId)
{
validateContext.AddError(null, new ValidationErrorInfo("FBillNo", dataEntity.DataEntity["Id"].ToString(), dataEntity.DataEntityIndex, dataEntity.RowIndex, "ReviewOver", "评审单号(" + Convert.ToInt64(dataEntity.DataEntity["BillNo"]) + ")您无权限执行该操作,请联系制单人", "评审单号", ErrorLevel.Error));
}
}
}
}[/code]