我正在使用NetSuite高级HTML编辑器来制作自定义语句。我试图检查声明是否有未结余额或是否已支付。这是我写的:
<#if record.amountremaining > 0 >${record.duedate}</#if><#if record.amountremaining = 0 >PAID IN FULL</#if>`
我得到这个错误:
由于以下错误,无法保存模板: 第132行,模板中的第184列出错。期待这里的布尔(真/假)表达式。表达记录。数量保留确实如此 不评估为真/假。它是一个实例 com.netledger.templates.model.EmptyModel 唯一合法的比较是在两个数字,两个字符串或两个日期之间。左手操作数是a com.netledger.templates.model.EmptyModel。右手操作数是一个 freemarker.template.SimpleNumber。
有谁知道为什么amountremaining
不是一个整数以及如何让它成为一个整数?
答案 0 :(得分:0)
我相信这是因为你的第一次比较;而不是将>
中的amountremaining > 0
解释为&#34;大于&#34;,Freemarker将其解释为#if
标记的结束。来自http://freemarker.org/docs/dgui_template_exp.html#dgui_template_exp_arit:
&gt; =和&gt;存在问题。 FreeMarker解释&gt;字符作为FTL标记的结束字符。为了防止这种情况,您可以使用lt而不是&lt;,lte而不是&lt; =,gt而不是&gt;和gte而不是&gt; =,就像在&lt; #if x> y&gt;中一样。将表达式放入括号中的另一个技巧就像在&lt; #if(x&gt; y)&gt;中一样,虽然它被认为不那么优雅。
进行文档中提到的任何更正都应该可以解决您的问题。