套打.动态字段.根据条件打印组合值
# 【应用场景】
套打时,根据单据体满足条件的数据进行数据拼接。
# 【案例演示】
以生产发料通知单为例,演示通过套打动态字段配置实现数据的过滤和数据拼接。
当仓库表体中对应数据勾选,打印对应的仓库数据(当多个时进行拼接)。
# 【动态字段配置】
### <1>配置表达式需要使用的动态字段
直接绑定,用作获取数据(当套打模板上没有绑定该字段时不会获取数据,此时可用配置表达式获取数据;当控件模板绑定了对应字段时,可不需要此步处理)
本案例中使用了“选择”字段(FCheck)和“仓库.名称”字段(FStockId01.FName)
其中针对“仓库.名称”字段,由于仓库可能为空,建议使用以下表达式绑定(所有基础资料型都应该这样处理,针对基础资料的特殊用法参考 [套打.动态字段.基础资料使用指南](https://vip.kingdee.com/article/179905871957849088))
```python
FStockId01.FName if FStockId01 != null else ''
```
![image.webp](/download/01002a7241b8b29a42bfb1a1ab81e59c99b9.webp)
### <2>配置聚合动态字段表达式
进行数据过滤、数据获取以及数据拼接。
![image.webp](/download/0100c2a19ae5615d4b09b7f13f808a3a09d4.webp)
```python
';'.join(map(lambda x:x.FStockId01.FName, filter(lambda x:x.FCheck == True and x.FStockId01 != null, ActiveObject)))
```
表达式解析:
1 )对仓库表体所有数据进行过滤,保留勾选和仓库非空的数据
```python
filter(lambda x:x.FCheck == True and x.FStockId01 != null, ActiveObject)
```
2 )将对应满足条件的数据行,获取对应的字段值
```python
map(lambda x:x.FStockId01.FName, filter(lambda x:x.FCheck == True and x.FStockId01 != null, ActiveObject))
```
3 )将集合数据进行内容拼接,使用了python的string.join
### <3>使用控件绑定自定义的动态字段标识
特别是在文本绑定跨实体动态字段目前需要使用GetDataSourcaValue()进行绑定。
(参考[套打.文本控件.打印动态字段](https://vip.kingdee.com/article/137611800287477504))
最终的动态字段标识与聚合字段设置的标识一致(本案例中为MergeStock)
![image.webp](/download/0100a818855a81ac4eeb97c377ec81a5a013.webp)
# 【演示效果】
![image.webp](/download/0100205be99a06e149da94505d1a8741e9b1.webp)
套打.动态字段.根据条件打印组合值
# 【应用场景】套打时,根据单据体满足条件的数据进行数据拼接。# 【案例演示】以生产发料通知单为例,演示通过套打动态字段配置实现数据...
点击下载文档
本文2024-09-23 04:12:56发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-163866.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章