3

从 ABAP 7.40 SP5开始,我可以使用该CONCAT功能在我的 CDS 视图选择列表中组合两个字段。它仅限于两个参数,但我可以通过链接此函数来组合多个字段或构建更大的字符串来解决这个问题。我不能这样做是将两个字段与分隔它们的空格结合起来。当我这样做时:

define view Z... 
as select from but000 as bp
{
    concat( concat( bp.name_first, ' '), bp.name_last )
}

空格' '会从结果字符串中默默地修剪掉。如何用空格分隔字段?

4

2 回答 2

6

ABAP 7.50

ABAP 7.50 将包含解决此问题的CONCAT_WITH_SPACE功能。有了这个函数,上面的例子可以简单地写成:

CONCAT_WITH_SPACE(bp.name_first,bp.name_last,1)

1 指的是要在两个参数之间插入的空格数。

7.50 还引入了其他字符串函数,如INSTR, LEFT, LENGTH, LTRIM, RIGHT,RPADRTRIM. 7.51 看起来将添加 LOWERUPPER该列表中。


ABAP 7.40

在这个版本中没有干净的方法来完成同样的事情。唯一的方法似乎是将两个字段与一个虚拟字符串连接起来,该字符串将空格包围在一个字符组中,该字符组不会出现在正在选择的字段中。组合后,您可以从结果中删除这些字符,只留下空格。我在SAP 论坛上从 Christian Seitel 那里采用了这种方法。

REPLACE(CONCAT( CONCAT( bp.name_first, '|-| |-|'), bp.name_last),'|-|', '')

这是有效的,因为它将按如下方式处理此字符串:

name_first|-| |-|
name_first|-| |-|name_last
name_first name_last
于 2016-12-23T16:11:51.540 回答
0

如果您仍在为 <7.50 版本而苦苦挣扎。你可以试试:

concat(concat("first_string",(' ')), "second_string")

我希望它有所帮助。

于 2018-07-20T07:08:52.690 回答