using Kingdee.BOS.Core.DynamicForm; using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.List; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.Util; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; namespace GZ.LJY000.Biori.SAL_OUTSTOCK { [HotUpdate, Description("销售出库单组装单取值插件")] public class BillEventPlugInEx : AbstractDynamicFormPlugIn { public override void BeforeUpdateValue(BeforeUpdateValueEventArgs e) { base.BeforeUpdateValue(e); } public override void EntryBarItemClick(BarItemClickEventArgs e) { base.EntryBarItemClick(e); if (e.BarItemKey.Equals("tbScanPack")) { var billShowParameter = new DynamicFormShowParameter(); if (this.Context.DBId.Equals("6735f10547df64")) billShowParameter.FormId = "k474702e8884e43a3b11c235d9d430f5d"; else billShowParameter.FormId = "UHIK_ScanGetPack"; billShowParameter.ParentPageId = this.View.PageId; var billObj = this.View.Model.DataObject; var billId = billObj["Id"].ToString(); var entity = billObj["SAL_OUTSTOCKENTRY"] as DynamicObjectCollection; if (entity != null && entity.Any()) { this.View.ShowForm(billShowParameter, (result) => { if (result != null) { var rows = result.ReturnData as DynamicObjectCollection; if (rows.Any()) { //var parentRows = rows.Where(w => !w["FParentRowId"].ToString().IsNullOrEmpty()); //var subRows = rows.Where(w => w["FParentRowId"].ToString().IsNullOrEmpty()); foreach (var item in entity) { DynamicObject row = null; //var parentRowId = item["ParentRowId"].ToString(); //var rowId = item["RowId"].ToString(); //if (parentRowId.IsNullOrEmpty()) //{ // //var row = rows.FirstOrDefault(w => w["FRowId"].ToString() == item["RowId"].ToString()); // row = parentRows.FirstOrDefault(w => w["FMaterialID_Id"].Long2Int() == item["MaterialID_Id"].Long2Int()); //} //else //{ // var parentMatId = item["ParentMatId_Id"].Long2Int(); // var parentRow = parentRows.FirstOrDefault(w => w["FMaterialID_Id"].Long2Int() == parentMatId); // row = subRows.FirstOrDefault(w => w["FParentRowId"].ToString() == parentRow["FRowId"].ToString() && w["FMaterialID_Id"] == item["MaterialID_Id"]); //} row = rows.FirstOrDefault(w => w["FMaterialID_Id"].Long2Int() == item["MaterialID_Id"].Long2Int()); if (row != null) { item["FPackBillNo"] = row["FBILLNO"].ToString(); item["FPackBillSeq"] = row["FBILLSEQ"].Long2Int(); item["FPackBillEntryId"] = row["FBILLENTRYID"].Long2Int(); } } } } this.View.UpdateView("FEntity"); return; }); } } } } }