销售单据跳转至获取电子面单携带物料信息试例

在星空企业版 PT-146906 [8.0.0.202203] 补丁中,支持从单据列表上批量勾选相关记录跳转到获取电子面单界面,从单据的物流跟踪页签直接跳转到获取电子面单界面的功能在PT-146906 [8.0.0.202203] 之前几个版本就已经支持了,这些跳转功能默认都会携带当前单据或选择的单据列表相关信息到获取电子面单界面并填充好,这样无需通过'获取电子面单'菜单并选择相关单据以填充值,跳转前的操作如下图1-1和图1-2所示:

图1-1

图1-2
列表批量选择记录跳转后的界面如下图1-3所示:

图1-3
默认情况下跳转到'获取电子面单'界面后的备注,物品名称字段都是空的(主要是因为星空通版不知道电子面单上的备注客户要输入什么信息,物品名称也可能只是一个汇总的抽象的东西),但是物料清单字段(本字段仅用于快递管家用)是有值的,很多客户提单反馈希望跳转后能够带出物料相关信息,比如单据上的物料携带到'获取电子面单'上的备注或物料名称字段上,当然也希望通过在获取电子面单选择单据后也能携带出物料信息,这样方便在打印快递100电子面单时能够显示物料信息。此问题可通过BOSIDE配置处理,通过扩展'获取电子面单'动态表单,添加Python插件,如下图2-1所示:

图2-1
脚本如下所示(不要复制以下脚本,此脚本会HTML转义某些空格导致有问题,请使用附件中的代码):
import clr
clr.AddReference('System')
clr.AddReference('Newtonsoft.Json')
clr.AddReference('Kingdee.BOS.Core')
from Newtonsoft.Json.Linq import *
from Kingdee.BOS.Core import *
from System import *
def DataChanged(e):
if e.Field.Key.Equals("FItems", StringComparison.OrdinalIgnoreCase):
stringifyItems = Convert.ToString(this.View.Model.GetValue("FItems", e.Row))
if(len(stringifyItems) > 0):
items = JArray.Parse(stringifyItems);
materialNames = ""
for item in items:
itemName = str(item["itemName"])
if not materialNames.__contains__(itemName):
materialNames = materialNames + " " + itemName
this.View.Model.SetValue("FComment", materialNames.strip(), e.Row)
def AfterBindData(e):
entryCount = this.View.Model.GetEntryRowCount("FKuaidiEntity");
rowIndex = 0;
while (rowIndex < entryCount):
stringifyItems = Convert.ToString(this.View.Model.GetValue("FItems", rowIndex));
try:
if(len(stringifyItems) > 0):
items = JArray.Parse(stringifyItems);
materialNames = ""
for item
销售单据跳转至获取电子面单携带物料信息试例
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



