该文本介绍了2021年5月13日推出的新版套打功能,支持单据实体动态字段配置,并提供了使用Python表达式配置的指南。针对文本和非文本混显的问题,建议使用文本转换函数。新方案解决了旧版本在处理多子项合并、多语言输出、自定义需求及后续计算等方面的不足。同时,详细介绍了单据套打函数FlexFormat的使用方法和参数说明,包括弹性域字段的格式化显示和示例。
<0>20210513新版套打功能:套打支持单据实体动态字段(基于Python表达式进行配置)
不知道功能的先看这个帖子,目前只支持单据。
后续这个帖子直接提问或者补充,考虑根据函数述求规划开发或放开函数二开实现
小tips:
1.如果要文本和非文本一起显示(如数字、日期),那么应该将非文本转换为文本,其中str()为python函数,.ToString()为C#函数,看情况使用
为什么会有这个实现方案?
a.控件、单元格GetValue作为占位符,在处理多个子项合并处理不友好;
b.多语言输出处理不友好
c.针对客户更多的自定义需求,在老版本的实现下需要增加更多的固定类型自定义字段,但是仅能解决部分需求,而后还需要做大量的维护工作
d.历史的输出逻辑无法使用这个值做持续的后续计算;
<1>单据套打函数:弹性域字段格式化函数FlexFormat(flexKey,formatString,separator)
快捷使用:设计器针对凭证增加FDetailIDNotePrintFormat,拖入后保存模板自动增加表达式(其他业务对象需要通过手动配置表达式实现)
函数解析:三个参数FlexFormat(flexKey,formatString,separator),flexKey——代表弹性域字段标识/或者弹性域子字段标识;formatString——单个维度的格式化显示规则;separator——各维度值间的分隔符;
格式化显示规则的占位词:Type——类型(核算维度用);Code——编码;Name——名称;
示例一:显示弹性域总值之核算维度
FlexFormat('FDetailID','Type:Code,Name','/')
显示格式 类型1:编码1,名称1/类型2:编码2,名称2/...
示例二:显示弹性域核算维度的单个维度值进行格式化
FlexFormat('FDetailID.FFlex5','Type——Name(Code)','/')
示例三:显示弹性域仓位的格式化
FlexFormat('FStockLocId','Name(Code)',';')
推荐阅读