This commit is contained in:
李狗蛋 2025-04-24 18:38:42 +08:00
parent 63782940f4
commit 12db989e79
6 changed files with 119 additions and 8 deletions

View File

@ -236,6 +236,7 @@
<ItemGroup>
<Compile Include="PRD_PPBOMCHANGE\PLTH.cs" />
<Compile Include="PRD_PPBOMCHANGE\PLTHForm.cs" />
<Compile Include="PRD_PPBOMCHANGE\PLTHWL.cs" />
<Compile Include="T_IV_SALESIC\AuditS_Order.cs" />
<Compile Include="Common\CommonHelper.cs" />
<Compile Include="PRD_PPBOM\AuditPOM.cs" />

View File

@ -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<int> FSEQ = new List<int>();
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);
}
}
}
}
});
}

68
PRD_PPBOMCHANGE/PLTHWL.cs Normal file
View File

@ -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<int> FSEQ = new List<int>();
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);
}
}
}
}
});
}
}
}
}
}

View File

@ -94,6 +94,7 @@ namespace GZ_LTHPilot_ORDER.IV_SALESIC
}
}
}
break;
}
}
}

Binary file not shown.

Binary file not shown.