关于采购订单付款条件选择按物料明细付款时在付款计划中获取明细信息字段的办法

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

关于采购订单付款条件选择按物料明细付款时在付款计划中获取明细信息字段的办法

@[TOC](目录) ### 1、用DataChanged值更新事件同步修改值 在DataChanged事件中通过一个`if`语句判断是否是【付款条件】和指定的"【自定义】"字段发生变化 ### 2、数据操作 1. 获取付款条件字段的数据包 2. 再判断数据包中的“FPAYMENTMETHOD”属性是否为“3”,为“3”表示是按物料明细付款 3. 分别获取明细信息和付款计划的数据包 4. 判断它们是否为非空。非空则遍历明细信息数据包 5. 用一个变量来存储明细信息数据包中的“Seq”属性值 6. 再嵌套一个循环遍历付款计划数据包 7. 判断明细信息的Seq与付款计划的“FMATERALSEQ”是否相等,相等则将明细信息中的“【自定义_明细信息】”字段赋值给付款计划“【自定义_付款计划】” 8. 最后调用this.View.UpdateView ### 3、Python案例代码 ```python import clr clr.AddReference('mscorlib') from System import * def DataChanged(e): #监控是不是指定字段发生改变 if e.Field.Key == "FPayConditionId" or e.Field.Key == "FPrice_Test" or e.Field.Key == "FDecimal_Test": UpdatePriceAndDecimal() def UpdatePriceAndDecimal(): payCondition = this.View.Model.GetValue("FPayConditionId")#表头付款条件 if not payCondition is None: if payCondition["FPAYMENTMETHOD"] == "3":#付款条件按物料明细付款 poOrderEntry = this.View.Model.DataObject["POOrderEntry"]#明细信息页签 fIinstallmentEntry = this.View.Model.DataObject["FIinstallment"]#付款计划页签 if not poOrderEntry is None and poOrderEntry.Count > 0 and not fIinstallmentEntry is None and fIinstallmentEntry.Count > 0: for itemPOEntry in poOrderEntry: seqPO = itemPOEntry["Seq"] for itemFI in fIinstallmentEntry: seqFI = itemFI["FMATERIALSEQ"] if seqPO == seqFI:#当付款计划的物料行号跟明细的行号一致时 itemFI["Price_Demo"] = itemPOEntry["Price_Test"]#更新付款计划中的字段为明细信息中的值 itemFI["Decimal_Demo"] = itemPOEntry["Decimal_Test"] this.View.UpdateView("FIinstallment")#更新视图 ``` ==将代码中的FPrice_Test,FDecimal_Test替换为自己的自定义字段标识。将itemFI[""] = itemPOEntry[""]替换成实际的自定义付款计划属性名和明细信息自定义字段属性名即可== ### 4、补充 **如果想携带的字段类型是【基础资料】等结构型的字段,则不能简单使用数据包给属性值赋值,在表单插件中可以用this.View.SetValue**。 将`itemFI["付款计划属性名称"] = itemPOEntry["明细信息属性名称"]`改为下面这两行: ```python #当字段为基础资料等结构型字段时 p = this.View.BillBusinessInfo.GetField("付款计划字段的标识") this.View.Model.SetValue(p,itemFI,itemPOEntry["明细信息属性名称"]) ```

关于采购订单付款条件选择按物料明细付款时在付款计划中获取明细信息字段的办法

@[TOC](目录)### 1、用DataChanged值更新事件同步修改值在DataChanged事件中通过一个`if`语句判断是否是【付款条件】和指定的"【自定义】"...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息