在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,输出就没问题了。
Comments