3

ABAP 7.40 SP5 以降、この関数を使用CONCATして、CDS ビュー選択リストの 2 つのフィールドを組み合わせることができます。パラメータは 2 つに制限されていますが、この関数を連鎖させて複数のフィールドを結合したり、より大きな文字列を作成したりすることで回避できます。この方法でできないのは、2 つのフィールドをスペースで区切って結合することです。私がこれを行うとき:

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 は、2 つの引数の間に挿入されるスペースの数を示します。

7.50 では、、、、、、、などの他の文字列関数も導入INSTRされています。7.51は、そのリストに追加するように設定されているようです。LEFTLENGTHLTRIMRIGHTRPADRTRIM LOWERUPPER


ABAP 7.40

このリリースで同じことを達成する明確な方法はありません。唯一の方法は、選択されているフィールドに表示されない文字グループでスペースを囲むダミー文字列で 2 つのフィールドを連結することです。結合後、これらの文字を結果から削除して、スペースだけを残すことができます。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 に答える