BOM更新用料清单界面如何新增二开字段展示原创
7人赞赏了该文章
1016次浏览
编辑于2019年06月12日 15:09:29
1、BOS设计器,生产订单列表显示表体新增下达日期字段,如下图:
2、新增表单插件,处理下达日期的展示,代码实例如下:
[Description("BOM更新用料清单界面展示新增二开下达日期字段")] public class BomSynsPPBom : AbstractDynamicFormPlugIn { public override void AfterBindData(EventArgs e) { base.AfterBindData(e); //获取生产订单列表显示数据 DynamicObjectCollection entryDatas = this.View.Model.DataObject.GetDynamicValue<DynamicObjectCollection>(CONST_PRD_MoListShow.CONST_FEntity.ENTITY_ORM_PRD_SUB_Entity); List<long> moEntryIds = entryDatas.Select(s => s.GetDynamicValue<long>(CONST_PRD_MoListShow.CONST_FEntity.ORM_MoEntryID)).ToList(); List<string> lstSelectFields = new List<string>(); lstSelectFields.Add("FTreeEntity_FEntryId as FENTRYID,"); lstSelectFields.Add("FCONVEYDATE as FCONVEYDATE"); QueryBuilderParemeter para = new QueryBuilderParemeter() { FormId = MFGFormIdConst.SubSys_PRD.MOBill, SelectItems = SelectorItemInfo.CreateItems(lstSelectFields.ToArray()), FilterClauseWihtKey = string.Format(" FTreeEntity_FEntryId IN({0}) ", string.Join("','", moEntryIds)) }; DynamicObjectCollection moEntryDatas = MFGServiceHelper.GetDynamicObjectCollection(this.Context, para); Dictionary<long, IGrouping<long, DynamicObject>> dicMoEntryDatas = moEntryDatas.GroupBy(g => g.GetDynamicValue<long>("FENTRYID")).ToDictionary(d => d.Key);
foreach (DynamicObject entryData in entryDatas) { long moEntryId = entryData.GetDynamicValue<long>(CONST_PRD_MoListShow.CONST_FEntity.ORM_MoEntryID); IGrouping<long, DynamicObject> igMoEntryDatas; if (dicMoEntryDatas.TryGetValue(moEntryId, out igMoEntryDatas)) { DateTime converyDate = igMoEntryDatas.FirstOrDefault().GetDynamicValue<DateTime>("FCONVEYDATE"); entryData.SetDynamicObjectItemValue("CONVEYDATE", converyDate); } } this.View.UpdateView(CONST_PRD_MoListShow.CONST_FEntity.ENTITY_FEntity); } }
推荐阅读