2016-04-08 64 views
1

我有一个请求,我需要创建一个完整性报告,我在查看销售数据并验证付款条件在所有项目(行)上是否一致。SAP BO - 比较行之间的值并有条件地显示

样本数据:

Sales # | Line # | Terms Code 
100  | 1.0 | N90 
100  | 2.0 | N90 
101  | 1.0 | N60 
101  | 2.0 | P45 
101  | 3.0 | N60 

注意,在SO 101,线路2.0具有不同的术语的代码。我需要检测并在报告上显示订单101。正确

=If(Previous([Payment Terms Code])=[Payment Terms Code]) Then 0 Else 1 

而是着眼于订单100线2.0,并将它标志:

我看着在这样的变量使用以前的运营商。

我不知道我该如何做到这一点,但也许使用IN运算符如何。建议?

回答

1

因此,您需要查看任何具有多个不同条款代码的销售订单时,适当描述需求?如果是这样,你可以做到这样的:

创建一个新变量:
Terms Count =Count([Terms Code]) in ([Sales #])

这个对象添加到报表。您应该在100条记录中看到“1”,在101条记录中看到“2”。

最后,过滤器添加到上横贯的报告计数> 1

1

Previous()函数的语法是:

Previous(dimension|measure|Self [;Row|col][;(reset_dims)][;offset][;NoNull]) 

第三个参数,reset_dims允许您指定的列表用于重置计算的尺寸。

因此,您的公式将被:

Previous([Payment Terms Code]; ([Sales #];[Line #])) 

注:

  • 必须始终放在括号尺寸即使只有一个复位维度列表维度。
  • 当您指定一组重置尺寸时,必须用分号分隔它们