Acumatica 另一个报表设计器子字符串或IIf问题

Acumatica 另一个报表设计器子字符串或IIf问题,acumatica,Acumatica,我在报告中有一个数据字段,数据示例如下: “75,80,80,80,92” "75,80,80,80,93" "75" “75,80” 我创建了另一个表达式字段,尝试在长度=14时只检索第三对数字,所以 =IIf(Len([CRCase.dtcase_Attributes])=14, Substring(Replace([CRCase.dtCase_Attributes],',',''), 4,2),'empty') 当我运行报告时,前两行可以得到“80”,但后两行会出现错误。有什么解决办法

我在报告中有一个数据字段,数据示例如下:

“75,80,80,80,92” "75,80,80,80,93" "75" “75,80”

我创建了另一个表达式字段,尝试在长度=14时只检索第三对数字,所以

=IIf(Len([CRCase.dtcase_Attributes])=14, Substring(Replace([CRCase.dtCase_Attributes],',',''), 4,2),'empty') 
当我运行报告时,前两行可以得到“80”,但后两行会出现错误。有什么解决办法吗


谢谢。

我发现的一个解决方法是使用padright使字符串具有相同的长度


但仍然想知道为什么布尔表达式的第一部分对于短字符串不返回false。

我也遇到了同样的问题。IIf的真实部分是评估所有记录,不管它们是否满足条件。对于不符合条件的记录,它不会对真实值做任何处理,但它仍然尝试对其进行评估,这没有任何意义。

正如Tim所提到的。计算完整公式以解析结果。
换言之,它正在使用这个 1) 求真法 2) 评估错误方法 3) 评价比较 4) 通过比较显示真/假

在您的情况下,其结果是:

IIF(true,{substringvalue},{skipped}) for the first two rows and
IIF(false,ERROR,'empty') for the rest.   
由于尝试计算真实部分时出现“错误”,整个公式失败

填充是这里的一个解决方案

请确保考虑空值。不能将空值正确填充