怎样携带即时库存字段到库存物料复检到期查询界面原创
金蝶云社区-SkyZPP
SkyZPP
2人赞赏了该文章 735次浏览 未经作者许可,禁止转载编辑于2020年10月21日 17:14:37

 注意:该二开方案需要基于2020年10月的补丁才可以实现;(本例以携带即时库存二开文本字段为例)

1、扩展物料复检到期查询元数据,增加文本字段,默认锁定不允许维护;

a.png

2、扩展物料复检到期查询过滤界面,在显示隐藏列中增加文本字段,注意标识与物料复检到期查询上增加的字段标识一致;

b.png

3、二开表单插件继承StkMtlReinspExpirQuery,重写FillEntrys方法,将插件挂在物料复检到期查询的表单插件上,取消标准产品插件的启用。

示例代码如下:

using Kingdee.BOS.Core.Metadata.EntityElement;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.K3.Core.MFG.EnumConst;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Kingdee.BOS.Util;
using Kingdee.K3.Core.MFG.EntityHelper;
namespace Kingdee.K3.MFG.QM.Business.PlugIn.DynamicForm
{
public class test : StkMtlReinspExpirQuery
{
protected override void FillEntrys()
{
base.FillEntrys();
Entity entity = this.View.BusinessInfo.GetEntity(CONST_QM_StkMtlReinspExpirQuery.CONST_FEntity.ENTITY_FEntity);
DynamicObjectCollection entrys = this.View.Model.GetEntityDataObject(entity);
List<string> InventortIds = entrys.GetDynamicObjectColumnValues<string>(CONST_QM_StkMtlReinspExpirQuery.CONST_FEntity.ORM_InventoryId).ToList();
if (InventortIds.IsEmpty()) return;
//此处根据回去的即时库存IdInventortIds 批量从技术库存表T_STK_Inventory中取出需要携带的二开字段,
//注意将inventoryId一起取出,然后以inventoryId 为key建立字典Dic;
foreach (DynamicObject entry in entrys)
{
 string inventoryId = entry.GetDynamicValue<string>(CONST_QM_StkMtlReinspExpirQuery.CONST_FEntity.ORM_InventoryId);
//此处根据获取出来的inventoryId 从上面建立的字典中取出对应的记录,然后从匹配记录中取出需要携带的二开字段赋值
//给当前分录中对应的二开字段即可
}
base.LockSelected();
}
}
}

 

赞 2