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.
はい、 ABAP 7.02 で導入された String Templates を使用できます。
次の例:
DATA:
foo TYPE string,
bar TYPE string,
foobar TYPE string.
foo = 'foo'.
bar = 'bar'.
foobar = |{ foo } and { bar }|.
Eduardo Copatによって言及された文字列式の他に、MESSAGE ... INTO ...
ステートメントを使用することが賢明な場合があります-特にテキストが翻訳されることになっている場合はそうです。一部の翻訳では、相互に関連する変数の位置を入れ替える必要があり、通常、テキストYou cannont combine &1 with &2.
は、別々の部分You cannot combine
およびwith
よりもはるかに簡単に翻訳できます。
&&または| {} {} |を使用できます表記。
オブジェクト間やオブジェクト間を入力する必要はありません。スペースを指定すると、スペースまたはその他のスペースとして使用されます。
"no space:
foobar = |{ foo }{ bar }|.
"1 space:
foobar = |{ foo } { bar }|.
等.
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
.