在NETSUITE的Advanced PDF Templates中,如果字段的类型是integer或者decimal,很可能Freemarker取得值的时候会认为它是number类型,这时候你用<#if><#else></#if>判断是不可行的。

比如以下的例子

<#assign field1 = record.custbody1 />
<#if field1 == "Yes">
    <p style="color:red">${field1}</p>
<#elseif field1 == "No">
    <p style="color:green">${field1}</p>
<#else>
    <p style="color:blue">${field1}</p>
</#if>

这种情况如果输入数字,输出是空的。为了应付这种情况,应该改为



<#assign field1 = record.custbody1 />
<#assign field1_str = field1?string />
<#if field1_str == "Yes">
    <p style="color:red">${field1_str}</p>
<#elseif field1_str == "No">
    <p style="color:green">${field1_str}</p>
<#else>
    <p style="color:blue">${field1_str}</p>
</#if>

这样类型就会变成string,输出就没问题了。

Last modified: 25/08/2021

Author

Comments

Write a Reply or Comment

Your email address will not be published.