套打.动态字段.核算维度,针对某个维度不打印

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

套打.动态字段.核算维度,针对某个维度不打印

【场景】

套打核算维度,针对某个维度不打印

【效果】

过滤掉费用项目维度不进行打印(支持的补丁版本:20210513 PT-146876 [7.6.0.202105]

image.webp

备注:如果不了解怎么配置核算维度组合值的显示样式,参照 套打实体动态字段,常用表达式,搜索 弹性域字段格式化函数FlexFormat


【实现细则】

(a)FlexFormat:

使用核算维度格式化,得到各维度的类型Type——类型(核算维度用),假设得到结果 类型1:编码1,名称1/类型2:编码2,名称2。

(b)拆分split:

针对核算维度格式化的值,按照维度进行拆分(要求维度分隔符在其他内容中不包含此字符),拆分后得到各维度的单个值原表。

(c)过滤filter(x: (x.find()<0), array):

根据各维度值判断其类型,如果字符串中包含类型的名称,那么就认为是需要过滤的类型。

(d)拼接join(array):

将集合结果拼接得到一个字符串显示输出。

最终表达式:

"/".join(filter(lambda x:(x.find('费用项目')<0),FlexFormat('FDetailID','Type:Code,Name','/')[0].GetString(2052).split('/')))

image.webp


【备注】

格式化分隔符必须在内容中不存在,同时拆分符与分隔符一致


【进阶】

(1)兼容核算维度为空的场景,输出空

'' if FDetailID==0 else "/".join(filter(lambda x:(x.find('费用项目')<0),FlexFormat('FDetailID','Type:Code,Name','/')[0].GetString(2052).split('/')))

(2)由于利用了维度类型过滤,但是最终不需要显示类型,可以使用字符串截断

'' if FDetailID==0 else "/".join(map(lambda x:(x[x.find(':')+1:] if (x.find(':')>0) else x), filter(lambda x:(x.find('费用项目')<0),FlexFormat('FDetailID','Type:Code,Name','/')[0].GetString(2052).split('/'))))

套打.动态字段.核算维度,针对某个维度不打印

【场景】套打核算维度,针对某个维度不打印【效果】过滤掉费用项目维度不进行打印(支持的补丁版本:20210513 PT-146876 [7.6.0.202105]...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息