批号设置为日期并且格式为yymmdd时 保存时校验批号与对应的日期是否相等

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

批号设置为日期并且格式为yymmdd时 保存时校验批号与对应的日期是否相等

1、物料启用批号管理

2、设置批号属性如下图以生产汇报单为例

image.webp

3、设置批号编码规则:

image.webp

3、对应的单据表体菜单添加按钮 【获取批号】生产汇报单已经存在该按钮 不再添加

4、表单插件代码 设置校验 如下图:

image.webp

5、将插件编译后绑定到表单插件 标准产品插件之后

具体代码如下:

public override void BeforeSave(BeforeSaveEventArgs e)        {            base.BeforeSave(e);            List<DynamicObject> entrys = this.Model.DataObject.GetDynamicValue<DynamicObjectCollection>(CONST_PRD_MORPT.CONST_FEntity.ENTITY_ORM_PRD_MORPTENTRY).ToList();            StringBuilder sbError = new StringBuilder();            foreach (var entry in entrys)            {                DynamicObject mtrlObj = entry.GetDynamicObjectItemValue<DynamicObject>(CONST_PRD_MORPT.CONST_FEntity.ORM_MaterialId);                if (mtrlObj.IsNullOrEmptyOrWhiteSpace()) continue;                bool isLotManege = mtrlObj.GetDynamicObjectItemValue<bool>(CONST_BD_MATERIAL.CONST_SubHeadEntity1.ORM_IsBatchManage, false);                if (isLotManege)                {                    DynamicObject lotObjs = entry.GetDynamicObjectItemValue<DynamicObject>(CONST_PRD_MORPT.CONST_FEntity.ORM_Lot);                    int curSeq = entry.GetDynamicValue<int>("Seq");                    string lotNumber = lotObjs.GetDynamicValue<string>("Number");                    string curPrdTime = entry.GetDynamicObjectItemValue<DateTime>(CONST_PRD_MORPT.CONST_FEntity.ORM_ProduceDate).ToString("yyyyMMdd");                    if (!lotNumber.EqualsIgnoreCase(curPrdTime))                    {                        sbError.AppendLine(string.Format("分录{0}对应的批号取值不为对应的生产日期"));                    }                }            }            if (sbError.Length > 0)            {                this.View.ShowErrMessage(sbError.ToString());                e.Cancel = true;            }        }

批号设置为日期并且格式为yymmdd时 保存时校验批号与对应的日期是否相等

1、物料启用批号管理2、设置批号属性如下图以生产汇报单为例3、设置批号编码规则:3、对应的单据表体菜单添加按钮 【获取批号】生产汇报单...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息