【问题标题】:Highlight formula in NetSuite that includes fields that are sometimes empty在 NetSuite 中突出显示包含有时为空的字段的公式
【发布时间】:2019-02-28 00:08:18
【问题描述】:

我在使用包含有时为空的字段的突出显示公式时遇到了一些问题。

我有一个汇总了几个字段的搜索:field_A + field_B + field_C。问题是,在某些情况下,字段 C 要么为空,要么值为 0。所以我试图找到一个公式:如果 Field_C 为空,则不要在计算中使用它,否则使用它。我能够使用这个公式对搜索进行求和:

CASE WHEN {field_C} 为 NULL THEN To_char({field_A} + {field_B},'9,999,999.99') ELSE To_char({field_A} + {field_B} + {field_C},'9,999,999.99') END

我的问题是当我尝试在搜索中突出显示某些项目时。基本上,我将 field_D 与字段 A 到 C 的总和进行比较。如果 field_D 高 10%,那么我们的预算不足,如果它低 10%,那么我们的预算过高。但是我的公式不起作用:

CASE WHEN {Field_C} 为 NULL THEN CASE WHEN 1.1*(max({Field_A}) + max({Field_B})) > sum({Field_D}) THEN 'OK' ELSE 'OVERBUDGET' END ELSE CASE WHEN 1.1 *(max({Field_A}) + max({Field_B}) + max({Field_C})) > sum({Field_D}) THEN 'OK' ELSE 'OVERBUDGET' END END

您发现我的公式中有什么不正确的地方吗?您对如何完成这项工作有任何想法吗?

非常感谢!

【问题讨论】:

    标签: netsuite


    【解决方案1】:

    您可以使用NVL 函数大大简化此操作。几乎所有 PL/SQL 函数都在 Netsuite 公式X 字段中工作——它们只是没有记录在 NS 文档中。

    所以求和公式变为:

    NVL({field_A},0) + NVL({field_B},0) + NVL({field_C},0)
    

    然后测试变成:

    CASE 
      WHEN (sum(NVL({field_A},0) + NVL({field_B},0) + NVL({field_C},0) > 1.1* sum({Field_D}) THEN 'OVERBUDGET' 
      WHEN (sum(NVL({field_A},0) + NVL({field_B},0) + NVL({field_C},0) < 0.9* sum({field_D} THEN 'UNDERBUDGET' 
      ELSE 'OK' END
    

    请注意,这些在公式中使用聚合函数意味着为该行选择了一个汇总值。所以第一个公式的 SUM 和第二个公式的最小值、最大值或平均值中的任何一个。我不知道它是否已被记录,但公式字段中的任何聚合函数都会覆盖那些汇总列选择并显示公式所暗示的内容。

    【讨论】:

      猜你喜欢
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多