是否有另一种连接方式而不是使用CONCATENATE关键字?

问题描述 投票:13回答:5

是否有另一种方法在ABAP中连接而不是使用CONCATENATE keyword

使用CONCATENATE的示例:

DATA:
  foo    TYPE string,
  bar    TYPE string,
  foobar TYPE string.

  foo = 'foo'.
  bar = 'bar'.

  CONCATENATE foo 'and' bar INTO foobar SEPARATED BY space.
sap abap
5个回答
24
投票

你可以(从ABAP 7.02开始)使用&&来连接两个字符串。

Data:
foo    TYPE string,
bar    TYPE string,
foobar TYPE string.

foo = 'foo'.
bar = 'bar'.

foobar = foo && bar.

这也适用于character literals

foobar = 'foo' && 'bar'.

为了保留空格,使用这种名为“text string literal”的字符文字,用两个grave accents(U + 0060)定义:

foobar = foo && ` and ` && bar

13
投票

是的,你可以使用在String Templates中引入的ABAP 7.02

以下示例:

DATA:
  foo    TYPE string,
  bar    TYPE string,
  foobar TYPE string.

  foo = 'foo'.
  bar = 'bar'.

  foobar = |{ foo } and { bar }|.

6
投票

除了Eduardo Copat提到的字符串表达式之外,使用MESSAGE ... INTO ...语句有时也是明智的 - 特别是如果文本应该被翻译的话。在一些翻译中,必须交换变量相对于彼此的位置,并且通常比单独的部分You cannont combine &1 with &2.You cannot combine更容易翻译文本with


0
投票

您可以使用&&或| {} {} |符号。

您不需要在对象之间键入,如果您给出空间,它将把它作为空格或任何其他对象。

"no space:
foobar = |{ foo }{ bar }|.
"1 space:
foobar = |{ foo } { bar }|.

等等


0
投票
DATA: v_line TYPE string.


CONCATENATE 'LINE1' 'LINE2' 'using cl_abap_char_utilities=>NEWLINE' INTO v_line SEPARATED BY cl_abap_char_utilities=>NEWLINE.

CALL FUNCTION 'LXE_COMMON_POPUP_STRING'
  EXPORTING
    text          = v_line
          .

CLEAR: v_line.

CONCATENATE 'LINE3' 'LINE4'  'cl_abap_char_utilities=>HORIZONTAL_TAB' INTO v_line SEPARATED BY cl_abap_char_utilities=>HORIZONTAL_TAB.

CALL FUNCTION 'LXE_COMMON_POPUP_STRING'
  EXPORTING
    text          = v_line
          .

CLEAR: v_line.

CONCATENATE 'LINE5' 'LINE6'  'cl_abap_char_utilities=>VERTICAL_TAB' INTO v_line SEPARATED BY cl_abap_char_utilities=>VERTICAL_TAB.

CALL FUNCTION 'LXE_COMMON_POPUP_STRING'
  EXPORTING
    text          = v_line
          .


CLEAR: v_line.

CONCATENATE 'LINE7' 'LINE8'  'cl_abap_char_utilities=>CR_LF' INTO v_line SEPARATED BY cl_abap_char_utilities=>CR_LF.

CALL FUNCTION 'LXE_COMMON_POPUP_STRING'
  EXPORTING
    text          = v_line
          .
© www.soinside.com 2019 - 2024. All rights reserved.