web-dev-qa-db-ja.com

CONCATENATEキーワードを使用する代わりに連結する別の方法はありますか?

CONCATENATE keyword を使用する代わりに、ABAPで連結する別の方法はありますか?

CONCATENATEの使用例:

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

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

  CONCATENATE foo 'and' bar INTO foobar SEPARATED BY space.
14
Eduardo Copat

(ABAP 7.02以降) && 2つの文字列を連結します。

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

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

foobar = foo && bar.

これは 文字リテラル でも機能します。

foobar = 'foo' && 'bar'.

スペースを保持するには、「テキスト文字列リテラル」という名前の次の種類の文字リテラルを使用します。これは、2つの グレーブアクセント (U + 0060)で定義されています。

foobar = foo && ` and ` && bar
24
omnibrain

はい、 ABAP 7.02 で導入された String Templates を使用できます。

次の例:

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

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

  foobar = |{ foo } and { bar }|.
13
Eduardo Copat

Eduardo Copatによって言及された文字列式の他に、MESSAGE ... INTO ...ステートメントを使用することが賢明な場合があります-特にテキストが翻訳されることになっている場合はそうです。一部の翻訳では、相互に関連する変数の位置を入れ替える必要があり、通常、テキストYou cannont combine &1 with &2.は、別々の部分You cannot combineおよびwithよりもはるかに簡単に翻訳できます。

6
vwegert

&&または| {} {} |を使用できます表記。

オブジェクト間やオブジェクト間を入力する必要はありません。スペースを指定すると、スペースまたはその他のスペースとして使用されます。

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

等.

0
Oguz
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
          .
0
sid