本案例将介绍,如何将金额按照百万、十万、万、千、百、十、元、角、分的格式进行拆分,并填写在子表单中。
财务管理场景中,需要将填报的金额特定格式进行拆分,以便在打印模板内按照下图格式进行打印:
1)子表单中添加一个数字字段用于录入金额数据;
2)在这个数值后面按照顺序添加所需要位数的数字字段;
3)分别对每一个数字字段编写对应函数。
在表单中录入金额后,即可自动将金额拆分,并填写在子表中。点击安装模板
新建「发票金额拆分」表单,字段设置如下:
字段名称 | 字段类型 |
金额拆分 | 子表单 |
录入金额 | 子字段-数字 |
百万 | 子字段-数字 |
十万 | 子字段-数字 |
万 | 子字段-数字 |
千 | 子字段-数字 |
百 | 子字段-数字 |
十 | 子字段-数字 |
元 | 子字段-数字 |
角 | 子字段-数字 |
分 | 子字段-数字 |
1)选中「百万」字段,在「字段属性 >> 默认值」处,设置默认值为「公式编辑」,点击下方「编辑公式」:
2)在公式编辑页面,设置「金额拆分.百万」字段的公式为:IF(INT(金额拆分.录入金额/1000000)>0,INT(金额拆分.录入金额/1000000),0):
设置好记得点击「确定」保存。
3)按照同样的方法,设置其他字段的公式如下:
IF(INT((金额拆分.录入金额-金额拆分.百万*100000)/100000)>0,INT((金额拆分.录入金额-金额拆分.百万*1000000)/100000),0)
IF(INT((金额拆分.录入金额-金额拆分.百万*1000000-金额拆分.十万*100000)/10000)>0,INT((金额拆分.录入金额-金额拆分.百万*1000000-金额拆分.十万*100000)/10000),0)
IF(INT((金额拆分.录入金额-金额拆分.百万*1000000-金额拆分.十万*100000-金额拆分.万*10000)/1000)>0,INT((金额拆分.录入金额-金额拆分.百万*1000000-金额拆分.十万*100000-金额拆分.万*10000)/1000),0)
IF(INT((金额拆分.录入金额-金额拆分.百万*1000000-金额拆分.十万*100000-金额拆分.万*10000-金额拆分.千*1000)/100)>0,INT((金额拆分.录入金额-金额拆分.百万*1000000-金额拆分.十万*100000-金额拆分.万*10000-金额拆分.千*1000)/100),0)
IF(INT((金额拆分.录入金额-金额拆分.百万*1000000-金额拆分.十万*100000-金额拆分.万*10000-金额拆分.千*1000-百*100)/10)>0,INT((金额拆分.录入金额-金额拆分.百万*1000000-金额拆分.十万*100000-金额拆分.万*10000-金额拆分.千*1000-金额拆分.百*100)/10),0)
IF(INT((金额拆分.录入金额-金额拆分.百万*1000000-金额拆分.十万*100000-金额拆分.万*10000-金额拆分.千*1000-金额拆分.百*100-金额拆分.十*10)/1)>0,INT((金额拆分.录入金额-金额拆分.百万*1000000-金额拆分.十万*100000-金额拆分.万*10000-金额拆分.千*1000-金额拆分.百*100-金额拆分.十*10)/1),0)
IF(SEARCH(".",TEXT(金额拆分.录入金额))==0,0,LEFT(TEXT(SPLIT(TEXT(金额拆分.录入金额),".")[1]),1))
IF(ISEMPTY(MID(TEXT(SPLIT(TEXT(金额拆分.录入金额),'.')[1]),2,1))==1,0,MID(TEXT(SPLIT(TEXT(金额拆分.录入金额),'.')[1]),2,1))
效果演示参见本文【1.4 预期效果】。