BOM更新用料清单界面如何新增二开字段展示原创
金蝶云社区-Tracy_Huang
Tracy_Huang
7人赞赏了该文章 1016次浏览 未经作者许可,禁止转载编辑于2019年06月12日 15:09:29

1、BOS设计器,生产订单列表显示表体新增下达日期字段,如下图:

 blob.png

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);
        }
    }


赞 7