还记得上期格式化累计量带千位分隔符输出的分享吗?
收到了一个反馈,有看官还真用上了。看来没白分享。可是也提出了新问题,在用户实际现场用的时候大概有个20 来个数据需要千位分隔符来显示大数。可当这 20 来个脚本都编写完成后,用户提出数据显示的小数位为 1 位,精度不够,希望改成显示两位小数位。
其实这倒也不难,按照上期讲到的 Formatnumber 函数的用法中讲到的参数 NumDigAfterDec 的解释,把这个参数值从 1 改到 2 也就解决问题了。
但是,20 多个脚本都已经写完了,并且还分布在了多个不同的画面里,挨个找出来改一遍工作量不小,而且还容易漏掉。有没有什么好的办法改一个地方就全改了呢?
其实也不是不可以,从上期的脚本看,看懂了也就明白了。实际每一个“静态文本”所执行的脚本都是一样的,无非就是变量名不同而已。那其实就可以把这种重复性的脚本编写成函数调用就 ok 了。同时也解决了改一处则改所有的问题。
打开全局 VBS 脚本编辑器,创建一个项目模块。在这个模块中,编写函数如下:
模块名称:DataProcessing.bmo
函数名称:FormatDataDisplay 函数传入参数:tagName 。调用该函数时只需要传入变量名即可。
画面中的静态文本调用该函数:
呈现结果:
如果用户再需要将小数位精度改回 1 位时,也只需要一次修改函数即得到统一结果了。
NumDigAfterDec 改回 1 ,结果:
抱着多为用户想一想的心态再多考虑了一下。很有会可能出现有些地方需要显示的是整数,而有些地方需要的小数点后位数是 1 也可能是 2 。
其实只要考虑周全了,把函数写得更灵活一些就好了。干脆就把小数位作为参数接口放到函数定义中,调用时直接传入所需的小数位。定义一个新的函数:
画面中调用:
呈现结果: