在 NetSuite 中突出显示包含有时为空的字段的公式
Highlight formula in NetSuite that includes fields that are sometimes empty
我在使用包含有时为空的字段的突出显示公式时遇到了一些问题。
我有一个对几个字段求和的搜索: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
你看到我的公式有什么不正确的地方吗?您知道如何进行这项工作吗?
非常感谢!
您可以使用 NVL
函数大大简化此过程。几乎所有 PL/SQL 函数都在 Netsuite formulaX 字段中工作——它们只是没有记录在 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 和第二个公式的最小值、最大值或平均值中的任何一个。我不知道它是否已记录在案,但公式字段中的任何聚合函数都会覆盖那些摘要列选择并显示公式所暗示的内容。
我在使用包含有时为空的字段的突出显示公式时遇到了一些问题。
我有一个对几个字段求和的搜索: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
你看到我的公式有什么不正确的地方吗?您知道如何进行这项工作吗?
非常感谢!
您可以使用 NVL
函数大大简化此过程。几乎所有 PL/SQL 函数都在 Netsuite formulaX 字段中工作——它们只是没有记录在 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 和第二个公式的最小值、最大值或平均值中的任何一个。我不知道它是否已记录在案,但公式字段中的任何聚合函数都会覆盖那些摘要列选择并显示公式所暗示的内容。