如何校验物料分组编码固定长度

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

如何校验物料分组编码固定长度

星空分组字段实际上公用了一个数据分组的基础资料。如供应商分组和物料分组都是使用这个数据分组,实际的差别是对应的实体表名不同。以下案例演示校验物料分组的编码必须是4位长度

  1. 扩展数据分组,增加保存服务插件

    image.webp

2.对应的插件代码如下:

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 Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;

namespace Witt.Cloud.PlugIn.AppService
{
    [HotUpdate]
    [Description("物料分组编码长度检查")]
    public class GroupNumLenPlugin : AbstractOperationServicePlugIn
    {

        public override void OnPreparePropertys(PreparePropertysEventArgs e)
        {
            e.FieldKeys.Add("FNumber");
        }

        public override void OnAddValidators(AddValidatorsEventArgs e)
        {
            //判断是否是物料分组
            var entity= this.BusinessInfo.GetEntity(0);
            if(entity!=null && entity.TableName!=null&&
                entity.TableName.EqualsIgnoreCase("T_BD_MATERIALGROUP"))
            {
                var validator = new GroupNumValidator();
                validator.EntityKey = "FBillHead";
                e.Validators.Add(validator);
            }
            
        }
    }


    public class GroupNumValidator : AbstractValidator
    {
        public override void Validate(ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Context ctx)
        {
            foreach (var data in dataEntities)
            {
                //
                
                var numVal = data["Number"].ToString();
                var billId = data["Id"].ToString();
                if (numVal.Length!=4)
                {
                    ValidationErrorInfo info = new ValidationErrorInfo("FNumber", billId, data.DataEntityIndex, data.RowIndex, "E1",
"物料分组编码必须4位长度", "分组");
                    validateContext.AddError(data, info);
                }
            }
        }
    }
}

3.演示效果

image.webp





如何校验物料分组编码固定长度

星空分组字段实际上公用了一个数据分组的基础资料。如供应商分组和物料分组都是使用这个数据分组,实际的差别是对应的实体表名不同。以下案...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息