Netsuite PDF/HTML 模板上带有数字范围的 IF 语句
Posted
技术标签:
【中文标题】Netsuite PDF/HTML 模板上带有数字范围的 IF 语句【英文标题】:IF Statement with Number Range on Netsuite PDF/HTML Template 【发布时间】:2017-07-21 12:37:24 【问题描述】:我需要指定默认运输方式,因为在 Netsuite 的输入表单上没有提供任何信息。由于各种原因,我必须在 PDF/html 模板中执行此操作。 这是我到目前为止的代码,但它似乎不起作用;
<#function toNumber val>
<#if val?has_content && val?length gt 0 >
<#return val?html?replace('[^0-9.]','','r')?number >
<#else><#return 0 ></#if></#function>
<#if record.shipmethod?has_content>
$record.shipmethod <!-- if a courier is selected -->
<#else> <!-- else -->
<#list 2000..2560 as pcx> <!-- Sydney Metro postcodes -->
<#if toNumber(record.shipzip)==pcx>
Courier1 <!-- Standard Sydney Metro Courier -->
<#else> <!-- else -->
Courier2 <!-- Standard Interstate Courier -->
</#if></#list></#if>
【问题讨论】:
【参考方案1】:您的循环每次运行时都会打印一些内容(即 560 行)!您应该使用lte
(小于或等于)和gte
(大于或等于)comparison operators 来测试邮政编码是否在所需范围内,而不是循环遍历数字:
<#function toNumber val>
<#if val?has_content && val?length gt 0 >
<#return val?html?replace('[^0-9.]','','r')?number >
<#else><#return 0 ></#if></#function>
<#assign zip = toNumber(record.shipzip)>
<#if record.shipmethod?has_content>
$record.shipmethod
<#elseif zip gte 2000 && zip lte 2560 >
Courier 1
<#else>
Courier 2
</#if>
【讨论】:
以上是关于Netsuite PDF/HTML 模板上带有数字范围的 IF 语句的主要内容,如果未能解决你的问题,请参考以下文章
在 NetSuite 中,如何在高级 PDF/HTML 模板中打印相关记录
使用 Netsuite 高级 PDF/HTML 模板进行条件打印(零值)
NetSuite:如何使用高级 PDF/HTML 模板在分组发票中引用自定义字段