一、问题场景
新版业务单据需要将公斤转换为斤,价格变换为斤价
二、操作步骤
👉【操作路径】: 处理判断的语句一般都是三目运算符: ${真 ? '打印' : '不打印'} 即括号内 ?前的值为真,则显示打印,如果为假 则显示不打印,这是最基础的判断语句
由于新版价签引入了math.js库,支持了绝大部分的运算操作,举例:${equalText("${商品拓展属性4}", "是") ? "100001":""} equalText运算会取值商品扩展属性4的值和逗号后面的值进行比较, 相当于equalText("${商品拓展属性4}", "是") 会返回布尔值,如果商品扩展属性4的值为是,则判断为真,如果不是'是' 则判断为假,后面打印的值 如果为真 则打印100001 如果为假则不打印
常见的运算操作如下:
compareText(x,y) 比较函数 返回比较结果:当x > y时为1,当x < y时为-1,当x == y时为0。运用到上面例子compare("${商品拓展属性4}", '1') 如果商品扩展属性4的值与1 比较, 若结果 返回1, 则为真,返回-1 或者0 则为假
equalText(x,y) 字符串比较函数 如果值相等则返回true,否则返回false。
larger(x,y) 当x大于y时返回true,否则返回false
largerEq(x,y) 当x大于或等于y时返回true,否则返回false
smaller(x,y) 当x小于y时返回true, 否则返回false
smallerEq(x,y) 当x小于或等于y时返回true,否则返回false
例子:
如果标准售价小数部分除10余0,展示除10后的结果,如果除10后不为0,展示标准售价小数部分。比如小数部分是50,则展示5;如果是25就还是展示25
答案:
${equal("${mod("${标准售价小数}",10)}",0) ? "${${标准售价小数}/10}" : "${标准售价小数}" }
例子:
想要实现促销商品不折扣根据某个字段,例如最低售价
答案
${larger(${最低售价},0)? "促销商品不打折":""}
按照上面所说的方法,新版调出单可以这样设置:
单位:${equalText("${明细.常用单位}", "公斤") ? "斤":"${明细.常用单位}"}
单价:${equalText("${明细.常用单位}", "公斤") ? "${${明细.常用单价}*0.5}":"${明细.常用单价}"}
数量:${equalText("${明细.常用单位}", "公斤") ? "${${明细.常用数量(压筐数量)}*2}":"${明细.常用数量(压筐数量)}"}
零售价:${equalText("${明细.常用单位}", "公斤") ? "${${明细.零售价}*0.5}":"${明细.零售价}"}