批号设置为日期并且格式为yymmdd时 保存时校验批号与对应的日期是否相等
1、物料启用批号管理
2、设置批号属性如下图以生产汇报单为例
3、设置批号编码规则:
3、对应的单据表体菜单添加按钮 【获取批号】生产汇报单已经存在该按钮 不再添加
4、表单插件代码 设置校验 如下图:
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时 保存时校验批号与对应的日期是否相等
本文2024-09-23 03:42:52发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-160624.html