diff --git a/GZ_LTHPilot_ORDER.csproj b/GZ_LTHPilot_ORDER.csproj index 5f22517..44f0817 100644 --- a/GZ_LTHPilot_ORDER.csproj +++ b/GZ_LTHPilot_ORDER.csproj @@ -236,6 +236,7 @@ + diff --git a/PRD_PPBOMCHANGE/PLTH.cs b/PRD_PPBOMCHANGE/PLTH.cs index 642ff01..de58168 100644 --- a/PRD_PPBOMCHANGE/PLTH.cs +++ b/PRD_PPBOMCHANGE/PLTH.cs @@ -1,8 +1,11 @@ -using Kingdee.BOS.Core.DynamicForm; +using DocumentFormat.OpenXml.Office2016.Drawing.ChartDrawing; +using Kingdee.BOS.Core.DynamicForm; using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata.EntityElement; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.Util; +using Kingdee.K3.Core.Mobile.Utils; using System; using System.Collections.Generic; using System.ComponentModel; @@ -13,7 +16,7 @@ using System.Threading.Tasks; namespace GZ_LTHPilot_ORDER.PRD_PPBOMCHANGE { - [Description("表单插件:生产用料清单变更单,点击批量替换#按钮实现批量替换功能"), HotUpdate] + [Description("表单插件:生产用料清单变更单,点击批量替换#按钮实现批量复制行替换功能"), HotUpdate] public class PLTH : AbstractDynamicFormPlugIn { public override void BarItemClick(BarItemClickEventArgs e) @@ -43,10 +46,48 @@ namespace GZ_LTHPilot_ORDER.PRD_PPBOMCHANGE //记录动态窗口的返回值 resultWlFID = result.ReturnData.ToString(); //获取单据体数据包 - var entiy = this.View.BillBusinessInfo.GetEntity("FEntity"); + var entiy = this.View.BillBusinessInfo.GetEntryEntity("FEntity"); var entityObjs = this.View.Model.GetEntityDataObject(entiy); + List FSEQ = new List(); if (entityObjs != null) { + foreach (var entityObj in entityObjs) + { + //当变更类型为变更前 + if (Convert.ToString(entityObj["ChangeType"]) == "2") + { + //记录序号。通过list记录 + var i = Convert.ToInt32(entityObj["Seq"]); + FSEQ.Add(i - 1); + } + } + } + //循环遍历,并且选中行,执行复制行操作 + for (int i = 0; i < FSEQ.Count; i++) + { + if (i == 0) + { + this.View.Model.CopyEntryRow("FEntity", FSEQ[i], FSEQ[i] + 2, true); + if (i + 1 != FSEQ.Count) + { + FSEQ[i + 1] = FSEQ[i] + 2; + } + } + else + { + this.View.Model.CopyEntryRow("FEntity", FSEQ[i] + 1, FSEQ[i] + 3, true); + if (i + 1 == FSEQ.Count) + { + FSEQ[i] = FSEQ[i] + 3; + } + else + { + FSEQ[i + 1] = FSEQ[i] + 3; + } + } + } + + /*复制行执行操作完毕后,因序号变更,对单据体需要再次循环执行重新赋值操作*/ foreach (var entityObj in entityObjs) { /*遍历单据体,变更类型为变更前复制这一列并更改物料编码; @@ -54,15 +95,15 @@ namespace GZ_LTHPilot_ORDER.PRD_PPBOMCHANGE if (Convert.ToString(entityObj["ChangeType"]) == "3") { //变更类型为变更后,分子赋值为0 - this.View.Model.SetItemValueByNumber("FNumerator", "0", Convert.ToInt32(entityObj["Seq"])-1); + this.View.Model.SetValue("FNumerator", 0, Convert.ToInt32(entityObj["Seq"]) - 1); } - if (Convert.ToString(entityObj["ChangeType"]) == "3") + /*变更类型为新增,将物料编码替换为动态窗口选择的物料FID*/ + if (Convert.ToString(entityObj["ChangeType"]) == "1") { - //变更类型为变更前,执行复制行操作 - + //对新增物料进行替换 + this.View.Model.SetValue("FMaterialID2", resultWlFID, Convert.ToInt32(entityObj["Seq"]) - 1); } } - } } }); } diff --git a/PRD_PPBOMCHANGE/PLTHWL.cs b/PRD_PPBOMCHANGE/PLTHWL.cs new file mode 100644 index 0000000..5a6f0c3 --- /dev/null +++ b/PRD_PPBOMCHANGE/PLTHWL.cs @@ -0,0 +1,68 @@ +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Util; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Kingdee.BOS.Core.DynamicForm.PlugIn; + +namespace GZ_LTHPilot_ORDER.PRD_PPBOMCHANGE +{ + [Description("表单插件:生产用料清单变更单,点击批量替换#按钮实现批量替换新增行物料的功能"), HotUpdate] + public class PLTHWL : AbstractDynamicFormPlugIn + { + public override void BarItemClick(BarItemClickEventArgs e) + { + base.BarItemClick(e); + //按钮点击事件 + if (e.BarItemKey.Equals("GZTH_PLTHWL", StringComparison.OrdinalIgnoreCase)) + { + string resultWlFID = ""; + //获取单据的生产组织的FID值 + var FPrdOrg = (Kingdee.BOS.Orm.DataEntity.DynamicObject)this.View.Model.GetValue("FPrdOrgId"); + if (FPrdOrg != null) + { + //获取生产组织ID值 + var FPrdOrgId = Convert.ToString(FPrdOrg["Id"]); + //打开动态表单,并对动态表单传值 + DynamicFormShowParameter parameter = new DynamicFormShowParameter(); + //动态表单ID值 + parameter.FormId = "YKQC_SCYLQDBGPLTH"; + parameter.MultiSelect = false; + //获取生产组织的FID值发送到打开的动态表单 + parameter.CustomComplexParams.Add("EntryPrimaryKeys", FPrdOrgId); + this.View.ShowForm(parameter, result => + { + if (result.ReturnData != null) + { + //记录动态窗口的返回值 + resultWlFID = result.ReturnData.ToString(); + //获取单据体数据包 + var entiy = this.View.BillBusinessInfo.GetEntity("FEntity"); + var entityObjs = this.View.Model.GetEntityDataObject(entiy); + List FSEQ = new List(); + if (entityObjs != null) + { + /*复制行执行操作完毕后,因序号变更,对单据体需要再次循环执行重新赋值操作*/ + foreach (var entityObj in entityObjs) + { + /*变更类型为新增,将物料编码替换为动态窗口选择的物料FID*/ + if (Convert.ToString(entityObj["ChangeType"]) == "1") + { + //对新增物料进行替换 + this.View.Model.SetItemValueByID("FMaterialID2", resultWlFID, Convert.ToInt32(entityObj["Seq"]) - 1); + } + } + + } + + } + }); + } + } + } + } +} diff --git a/T_IV_SALESIC/AuditS_Order.cs b/T_IV_SALESIC/AuditS_Order.cs index 2c8027e..caab9f9 100644 --- a/T_IV_SALESIC/AuditS_Order.cs +++ b/T_IV_SALESIC/AuditS_Order.cs @@ -94,6 +94,7 @@ namespace GZ_LTHPilot_ORDER.IV_SALESIC } } } + break; } } } diff --git a/bin/Debug/GZ_LTHPilot_ORDER.dll b/bin/Debug/GZ_LTHPilot_ORDER.dll index 3bacddf..ef75642 100644 Binary files a/bin/Debug/GZ_LTHPilot_ORDER.dll and b/bin/Debug/GZ_LTHPilot_ORDER.dll differ diff --git a/bin/Debug/GZ_LTHPilot_ORDER.pdb b/bin/Debug/GZ_LTHPilot_ORDER.pdb index a7c9373..527433c 100644 Binary files a/bin/Debug/GZ_LTHPilot_ORDER.pdb and b/bin/Debug/GZ_LTHPilot_ORDER.pdb differ