实现数量、单价、金额等数字类型字段格式化为千分位
一、需求背景
实现数字类型字段格式化为千分位,例如1234567,格式化为1,234,567
二、实现方式
例如想在采购订单上将单价格式化为千分位的文本字段
1、在BOS里拖一个文本字段到单据的明细中
2、在单价字段设置值更新事件,此处使用含税单价来触发计算公式
3、在值更新事件里,新增服务,选择服务类型“计算定义公式的值并填写到指定列”,设置公式
F_QTMO_Text_qtr =((str(FPrice)[(0 if str(FPrice).find('.')<=15 else str(FPrice).find('.')-15):str(FPrice).find('.')-12 ]+',') if str(FPrice).find('.')>=13 else '')+((str(FPrice)[(0 if str(FPrice).find('.')<=12 else str(FPrice).find('.')-12):str(FPrice).find('.')-9 ]+',') if str(FPrice).find('.')>=10 else '') + ((str(FPrice)[(0 if str(FPrice).find('.')<=9 else str(FPrice).find('.')-9):str(FPrice).find('.')-6 ]+',') if str(FPrice).find('.')>=7 else '') +((str(FPrice)[(0 if str(FPrice).find('.')<=6 else str(FPrice).find('.')-6):str(FPrice).find('.')-3 ]+',') if str(FPrice).find('.')>=4 else '')+(str(FPrice)[(0 if str(FPrice).find('.')<=3 else str(FPrice).find('.')-3):str(FPrice).find('.') ])+'.'+str(FPrice)[str(FPrice).find('.')+1:20 ]
如果想去掉小数点后面的零可以使用str.strip( '0' )
F_QTMO_Text_qtr =((str(FPrice)[(0 if str(FPrice).find('.')<=15 else str(FPrice).find('.')-15):str(FPrice).find('.')-12 ]+',') if str(FPrice).find('.')>=13 else '')+((str(FPrice)[(0 if str(FPrice).find('.')<=12 else str(FPrice).find('.')-12):str(FPrice).find('.')-9 ]+',') if str(FPrice).find('.')>=10 else '') + ((str(FPrice)[(0 if str(FPrice).find('.')<=9 else str(FPrice).find('.')-9):str(FPrice).find('.')-6 ]+',') if str(FPrice).find('.')>=7 else '') +((str(FPrice)[(0 if str(FPrice).find('.')<=6 else str(FPrice).find('.')-6):str(FPrice).find('.')-3 ]+',') if str(FPrice).find('.')>=4 else '')+(str(FPrice)[(0 if str(FPrice).find('.')<=3 else str(FPrice).find('.')-3):str(FPrice).find('.') ])+('.'+str(FPrice)[str(FPrice).find('.')+1:20 ]).strip( '0' )
三、效果
在采购订单的录入界面录入含税单价后,系统自动格式化出文本2的千分位格式。
实现数量、单价、金额等数字类型字段格式化为千分位
本文2024-09-16 18:27:55发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-22318.html