【问题标题】:SAP BO - Compare values between rows and conditionally displaySAP BO - 比较行之间的值并有条件地显示
【发布时间】:2016-04-08 16:43:11
【问题描述】:

我有一个请求,我需要创建一份完整性报告,我正在查看销售数据并验证所有项目(行)的付款条款是否一致。

样本数据:

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。

我正在研究在这样的变量中使用 PREVIOUS 运算符:

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

但这会查看 Order 100 行 2.0 并且会错误地标记它。

我不确定如何做到这一点,但也许可以使用 IN 运算符。有什么建议吗?

【问题讨论】:

    标签: sap business-objects


    【解决方案1】:

    那么描述要求是否合适,因为您需要查看具有多个不同条款代码的任何销售订单?如果是这样,您可以这样完成:

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

    将此对象添加到报告中。您应该看到所有 100 条记录的“1”,以及 101 条记录的“2”。

    最后,在 Trans Count > 1 的报告中添加一个过滤器。

    【讨论】:

      【解决方案2】:

      Previous() 函数的语法是:

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

      第三个参数reset_dims 允许您指定维度列表何时用于重置计算。

      因此,您的公式将是:

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

      注意事项:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-02
        • 2022-11-26
        • 1970-01-01
        • 2018-01-24
        • 1970-01-01
        • 1970-01-01
        • 2016-01-07
        • 1970-01-01
        相关资源
        最近更新 更多