【套打】嵌套的基础资料和基础资料属性套打显示(1)原创
金蝶云社区-_Tmp
_Tmp
10人赞赏了该文章 816次浏览 未经作者许可,禁止转载编辑于2020年07月20日 10:39:18


案例一:计划订单A下的物料基础资料B,物料基础资料B下的物料分组字段C(分组字段本质上也是基础资料字段)。

套打物料分组字段C的编码和名称。

套打名称:物料编码的物料分组字段(基础资料字段)的取值顺序,先名称属性,无名称属性则取编码属性

套打编码:物料分组为基础资料只能取名称,那么需要利用基础资料属性绑定对应分组字段的编码属性


image.png

image.png

效果

image.png

当你要套打案例中的C基础资料的编码,那么必须要通过基础资料属性进行相关取值



案例二,使用python脚本对嵌套基础资料进行排序 【套打】修改套打数据行中分组的输出顺序

在某些特殊场景或历史版本不兼容的情况下需要使用插件排序,python插件排序针对嵌套的基础资料排序问题

按照物料分组进行排序。

<1>对物料分组字段排序,等价于对名称排序;(名称重复问题,多语言处理问题)

<2>对分组编码排序,等价于对基础资料编码排序

image.png

对物料分组的脚本和效果,日志分析

from System import *


def OnPrepareNotePrintData(e):

strBuild = '';

if e.DataSourceId.Equals("FBillHead",StringComparison.OrdinalIgnoreCase):

tempList = sorted(e.DataObjects,key =lambda x:(x["FMaterialId_FMaterialGroup"]),reverse=True);

for index in range(len(tempList)):

x=  tempList[index];

strBuild +="row" + str(index);

if x['FMaterialId_FMaterialGroup'] != None:

strBuild +=" ToString:"+x['FMaterialId_FMaterialGroup'].ToString()+" str"+str(x['FMaterialId_FMaterialGroup']);

strBuild +=  "\r\n";

e.DataObjects[index] = tempList[index];

this.View.ShowMessage(strBuild);


image.png

image.png

更正确的做法,使用编码排序(同时解决名称在部分语言下重复的问题)


image.png

image.png


赞 10