2016-11-23 71 views
2

我有一个问题,我试图用Netsuite中的高级PDF模板来解决。 下面是问题的概要,下面是当前代码的基本概述。Freemarker Syntax Netsuite

我们有一群公司(假设他们都包含Company ABC的名字) 偶尔我们会收到这家公司的订单,但他们没有被批准。这导致record.otherrefnum下手SC 100(或SC100

我想在模板下面的情景,我需要一些帮助,如何正确结构这一点。我已经为订单添加了一个自定义复选框scoverride因此基本上,我希望能够选中此框,以覆盖原始IF语句。

IF scoverride?字符串== “否”,实体包含 'ABC公司' AND otherrefnum包含 'SC100' 然后显示table1的

除非scoverride?字符串== “是”,则显示表2

IF实体不包含“ABC公司”显示表2 *

*的问题是,该复选框将被默认为取消选中,并为我们的所有其他客户端,这将不会是一个问题。这就是为什么我需要这个第三个参数包括

<#if record.entity?contains("Company ABC") && record.otherrefnum?contains("SC 100") || record.otherrefnum?contains("SC100")> 

    <table id="table1"> 
    <tr><td>Shopping Cart Number is invalid.</td></tr> 
    </table> 

<#else> 

    <table id="table2"> 
    <tr><td>${record.otherrefnum}</td></tr></table> 

</#if> 

回答

2

把你的要求的另一种方式是,车号码是无效的,如果:

  1. 公司是“ABC公司”,
  2. 订单号匹配“SC100”或“SC 100”,
  3. 覆盖标志未设置

这将转化为下面的代码:这似乎是工作我怎么想它

<#if record.entity?contains("Company ABC") && 
    (record.otherrefnum?contains("SC 100") || record.otherrefnum?contains("SC100")) && 
    record.custbody_scoverride != 'T'> 

    <table id="table1"> 
    <tr><td>Shopping Cart Number is invalid.</td></tr> 
    </table> 

<#else> 

    <table id="table2"> 
    <tr><td>${record.otherrefnum}</td></tr></table> 

</#if> 
+1

感谢michoel。虽然我不得不使用'&& record.custbodyscoverride?string ==“No”'而不是'record.custbody_scoverride!='T'' –

+1

@SimonG很高兴听到它的工作!自定义字段是否定义为复选框类型,因为根据我的经验,字段类型通常包含'T'或'F'?无论如何,使用'record.custbodyscoverride?string!=“Yes”'来处理空值比如'No' – michoel