生产齐套分析单获取计算加载供应记录
## 简介
齐套分析完毕后,保证在同样的取数范围前提下,根据客户定制需求对分析结果进行二次加工。参考使用本文档的开发案例可以获取到本次计算齐套分析加载的所有供应,以及各子项明细在计算过程中的供应分配情况。
## 需要预先了解的知识
- 熟悉csharp编程知识
- 了解金蝶云星空企业版的插件开发知识(主要为表单插件和操作插件的使用)
-参考知识贴了解本方案插件的注册方式和实现机制https://vip.kingdee.com/article/208239499015706880《齐套分析子项明细自定义字段的赋值指南》
## 版本依赖
金蝶云星空企业版8.1,补丁版本PT-149006 发布时间:2023/6/8
## 二开插件样例
### 样例:从齐套分析单的保存操作触发
生产齐套分析单在完成一次分析后会自动调用一次单据的保存。通过在保存操作上注册插件可以获取到对应分析的子项明细记录以及计算过程中加载的供应结果作二次加工,以实现二开逻辑。
```csharp
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Core.SqlBuilder;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Util;
using Kingdee.K3.Core.MFG.EntityHelper;
using Kingdee.K3.MFG.Common.BusinessEntity.PRD;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SampleAppPlugIn
{
public class MatchSave : AbstractOperationServicePlugIn
{
public override void BeginOperationTransaction(BeginOperationTransactionArgs e)
{
if (!this.Option.ContainsVariable("SupplyData"))
return;
//全部自由匹配的供应
DynamicObjectCollection supplyDatas = this.Option.GetVariableValue<DynamicObjectCollection>("SupplyData");
//按照子项明细分配的供应记录,包含:Item1子项明细数据包,Item2自由匹配的供应记录,Item3当前供应给当前子项明细的分配数量。
var supplyDetails = this.Option.GetVariableValue<List<Tuple<DynamicObject, PrepareMtrlCalcBillView.SupplyData, decimal>>>("SubSupplyDetails");
//按照子项明细收集的预留关系,包含:Item1子项明细数据包,Item2当次计算加载的预留关系,Item3当前预留供应给当前子项明细的分配数量
var reserveLinkSupplys = this.Option.GetVariableValue<List<Tuple<DynamicObject, PrepareMtrlCalcBillView.SupplyData, decimal>>>("ReserveLinkSupplys");
//当次计算输出的所有子项明细记录。修改这个集合再调用保存可以实现分析后补充填充二开字段值,或者修改标准产品的计算结果(这个可以做,但没有对计算结果有足够了解的情况下不推荐直接覆盖)。
var matchResult = this.Option.GetVariableValue<List<DynamicObject>>("matchResult");
foreach (var match in matchResult)
{
foreach (var sd in supplyDetails)
{
if (sd.Item1["RowId"] == match["RowId"])//使用RowId匹配
{
DynamicObject mtrl = match["MaterialIdSub"] as DynamicObject;//子项物料数据包
string demandBillNo = match["MoBillNo"] + "-" + match["MoEntrySeq"];//需求单号
string supplyBillName= sd.Item2.RelationFormId.Name[this.Context.UserLocale.LCID];//供应单类型
decimal totalQty = sd.Item2.BaseTotalQty;//该供应条目的总供应数量统计
//需要做二次取数的可以根据BillId,BillEntryId再次查询统计对应的单据,补充二开的取数逻辑
string billNo = sd.Item2.RelationBillNo;//供应的单据编号
string billId = sd.Item2.RelationInterId;//供应的单据内码
string billEntryId = sd.Item2.RelationEntryId;//单据分录内码
string formid = sd.Item2.RelationFormId_Id;//供应单据的FORMID
}
}
}
//子项明细记录可以修改后进行保存。
BusinessDataServiceHelper.Save(this.Context, matchResult.ToArray());
}
}
}
```
生产齐套分析单获取计算加载供应记录
## 简介齐套分析完毕后,保证在同样的取数范围前提下,根据客户定制需求对分析结果进行二次加工。参考使用本文档的开发案例可以获取到本次...
点击下载文档
本文2024-09-23 03:21:47发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-158376.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章