移动工序质检的列表界面(检验结果查询)增加二开字段

【应用场景】
移动工序质检(SFC_MobileInspectOperInspList)的列表界面(检验结果查询)增加二开字段,目前因为检验单的原因不能直接通过拖动字段进行显示,还需要插件进行干预
【实现步骤】
<1>需要先扩展 SFC_MobileInspectOperInspList,在检验结果查询界面增加二开字段,标识需要按照这个格式进行设置FDLbl_XXXX。 同时因为这个列表是有2个移动列表,所以增加字段的时候如果是在结果查询界面通过流式布局的前后设置先给设置到前面。如下图

增加字段后还需要二开插件,具体的代码如下:目前的二开字段是物料的规格型号进行示例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Util;
using Kingdee.K3.Core.MFG.EntityHelper;
using Kingdee.K3.MFG.Mobile.Business.PlugIn.SFC.Utils;
namespace Kingdee.K3.MFG.Mobile.Business.PlugIn.SFC.Inspect
{
public class EKInspectOperInspList : InspectOperInspList
{
/// <summary>
/// 准备二维表数据
/// </summary>
/// <param name="datas"></param>
/// <param name="dicTableData"></param>
protected override void PrepareDetailDicTableData(IEnumerable<DynamicObject> datas, Dictionary<int, Dictionary<string, object>> dicTableData)
{
if (!datas.Any()) return;
Dictionary<object, DynamicObject> dicOptEntrys = datas.SelectMany(s => s["Entity"] as DynamicObjectCollection).SelectMany(s => s["ReferDetail"] as DynamicObjectCollection).ToDictionary(k => k["Id"]);
Dictionary<object, DynamicObject> dic = _exDetailDatas
.Select(s => s["OptPlanDatas"] as Dictionary<long, DynamicObject>)
.SelectMany(dynamicObjects => dynamicObjects)
.ToDictionary<KeyValuePair<long, DynamicObject>, object, DynamicObject>(
keyValuePair => keyValuePair.Key, keyValuePair => keyValuePair.Value);
foreach (Dictionary<string, object> tableRow in dicTableData.Values)
{
DynamicObject referDetailEntry = dicOptEntrys[tableRow["EntryPkId"]];
DynamicObject inspectEntry = referDetailEntry.Parent as DynamicObject;
DynamicObject iEntry = inspectEntry.Parent as DynamicObject;
tableRow.Add("FModifierId_Id", iEntry["ModifierId_Id"]);
tableRow.Add("EntryId", inspectEntry["Id"]);
tableRow.Add("QCStatus", inspectEntry["QCStatus"]);
DynamicObject material = inspectEntry["MaterialId"] as DynamicObject;
DynamicObject materialStock = ((DynamicObjectCollection)material["MaterialStock"])[0];
if (Convert.ToBoolean(materialStock["IsSNManage"]) || Convert.ToBoolean(materialStock["IsSNPRDTracy"]))
{
try
{
DynamicObject snData = (DynamicObject)((DynamicObjectCollection)inspectEntry["PolicyDetail"])[0]["SerialId"];
tableRow.Add("FSNId", snData == null ? "" : Convert.ToString(snData["Number"]));
tableRow.Add("FIsSNManage", true);
}
catch (Exception e)
{
// 列表刷新原因,这个地方会跑两遍,第一次进来的时候没有这个子子单据体,
}
}
else
{
tableRow.Add("FSNId", "");
tableRow.Add("FIsSNManage", false);
}
tableRow.Add("FProductId", string.Format("{0}/{1}/{2}", material["Number"], material["Name"], material["Specification"]));
//二开字段设置
tableRow.Add("FLable83g", material["Specification"]);
DynamicObject referDetail = inspectEntry.GetDynamicValue<DynamicObjectCollection>("ReferDetail").FirstOrDefault();
tableRow.Add("FMONumber", string.Format("{0}-{1}", referDetail["OrderBillNo"], referDetail["OrderEntrySeq"]));
if (dic.ContainsKey(tableRow["EntryPkId"]))
{
if (!dic[tableRow["EntryPkId"]].IsNullOrEmptyOrWhiteSpace())
{
tableRow.Add("FOperPlanNo",
dic[tableRow["EntryPkId"]]["FOptPlanNo"] + "-" + dic[tableRow["EntryPkId"]]["移动工序质检的列表界面(检验结果查询)增加二开字段
【应用场景】移动工序质检(SFC_MobileInspectOperInspList)的列表界面(检验结果查询)增加二开字段,目前因为检验单的原因不能直接通过...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



