2

需要关于 BO 4.1 中的 webi 报告的建议 抱歉对齐。

我有一份报告如下:

国家 代理人 顾客 产品
英国 萨拉
英国 亚当 吉尔
英国 蒂姆
英国 蒂姆
我们 约翰 山姆 腰带
我们 约翰 山姆

结果应如下所示:

国家 代理人 顾客 产品
国家 代理人 顾客 产品
英国 萨拉
英国 亚当 吉尔
英国 蒂姆 鞋、包
我们 约翰 山姆 腰带、包

我有一个查询拉客户、产品和国家,另一个查询拉代理和国家。我已将代理作为与国家/地区关联的详细对象。我得到以下输出

国家 代理人 顾客 产品
英国 萨拉
英国 亚当 吉尔
英国 蒂姆
英国 蒂姆
我们 约翰 山姆 腰带
我们 约翰 山姆

我尝试按照 http://bi.srivatsakr.com/2011/08/converting-rows-into-single-cell-comma.html的说明进行操作

[VAR Max Products] = Max ([Products] In [Customer])
    
[VAR Concat Products] = [Products]+", "+Previous(Self)
    
[VAR Max Concat Products]= [VAR Concat Products] Where ([Products]=[VAR Max Products])
    
[VAR Product] = If(IsNull(Previous([VAR Max Concat Products]));Substr([VAR Max Concat Products];1;Length([VAR Max Concat Products])-2);Substr([VAR Max Concat Products];1;Pos([VAR Max Concat Products];Previous([VAR Max Concat Products]))-3))

但这给了我这样的结果

国家 代理人 顾客 产品 [VAR产品]
英国 萨拉
英国 亚当 吉尔
英国 蒂姆 鞋, 包、鞋
英国 蒂姆
我们 约翰 山姆 腰带 包、腰带
我们 约翰 山姆

如果我删除产品列,结果如下:

国家 代理人 顾客 产品 [VAR产品]
英国 萨拉
英国 亚当 吉尔
英国 蒂姆
英国 蒂姆
我们 约翰 山姆
我们 约翰 山姆

我可以隐藏产品列,但它仍然不会显示正确的结果。需要一些建议。提前感谢帮助。

4

3 回答 3

1

我根据这篇 SAP 博客文章将一些行转换为字符串,如下所示:

_Concat_MyField = Previous(Self) + (If IsNull(Previous(Self)) Then "" Else ", ") + [MyField]

Final = Last([_Concat_MyField] ForEach ([MyField]))

_Concat_MyField变量将每一行与前一行的值连接起来,并且该Final变量抓取最后一个条目,这是所有行都已连接到字符串中的条目。

[MyField]如果您将和[_Concat_MyField]放入示例报告中的同一张表中,则更有意义。

于 2017-06-05T05:54:40.620 回答
1

我改变了这两个变量,它工作正常:

[VAR Concat Products] = Previous(Self)+", "+[Product]
[VAR Product] = Substr([VAR Max Concat Products];3;Length(([VAR Max Concat Products])-2)
于 2015-10-16T19:01:28.397 回答
0

我通过改变一个公式使它起作用:

[VAR Concat Products] = Previous(Self)+ (If IsNull(Previous(Self)) Then "" Else ", ") +[Products]

(我更改了连接顺序,并添加了“If”以防止不必要的逗号)

这打破了长结果集。最大可变长度约为。5000 个字符,连接变量将在几百行后填充。尝试在表格中显示“Concat Products”和“Max Concat Products”的值。

于 2017-08-09T10:45:49.507 回答