!--a11y-->

テキストシンボルは名称付きデータオブジェクトであり、ABAP プログラムのテキストプール内のテキストからプログラムを開始すると生成されます。テキストシンボルの型は常にデータ型 C です。その項目長は、テキストプール内のテキスト長と一致します。
テキストシンボルは、プログラム表題、一覧ヘッダ、および選択テキストと共に、プログラムの
テキストエレメントに属しています。テキストエレメントにより、言語非依存のプログラムを作成することができます。プログラムによって画面上に表示されるあらゆるテキストを、テキストエレメントとしてテキストプールに保存することが可能です。言語別に異なるテキストプールを作成することができます。テキストエレメントを変更または翻訳するとき、実際のプログラムコードを変更する必要はありません。ABAP
プログラムのテキストエレメントは、ABAP
エディタに保存されています (
テキストエレメント更新を参照してください)
。
テキストプールでは、各テキストシンボルを 3 文字 の ID で識別します。テキストシンボルには、内容、占有長、および最大長があります。

ABAP プログラムのテキストシンボルの例は以下のとおりです。
|
ID |
内容 |
占有長 |
最大長 |
|
010 |
テキストシンボル 010 |
15 |
132 |
|
030 |
テキストシンボル 030 |
15 |
100 |
|
AAA |
テキストシンボル AAA |
15 |
15 |
プログラムでは、以下の書式でテキストシンボルをアドレスすることができます。
TEXT-<idt>
このデータオブジェクトには、ID <idt> のテキストシンボルのテキストが、ユーザのログオン言語によって格納されています。このデータオブジェクトの項目長は、テキストシンボルの最大長と同じです。未入力の文字は空白によって埋められます。プログラム内のどの箇所でもテキストシンボルをアドレスすることができ、そこでは変数をアドレスすることも可能です。
ログオン言語のテキストシンボル<idt> がテキストプールにない場合、代わりに名称TEXT-<idt> で組込データオブジェクト SPACE がアドレスされます。
以下のようにテキストシンボルをアドレスすることもできます。
... '<textliteral>'(<idt>) ...
テキストシンボル <idt> がログオン言語のテキストプールにある場合、これは TEXT-<idt> を使用するときと同じになります。これ以外の場合、リテラル '<textliteral>' がテキストシンボルの内容として使用されます。これは、プログラム内で変数を使用することができる箇所でのみ可能です。どんなテキストリテラルのテキストシンボルでも、ABAP エディタでそのリテラルをダブルクリックし、リテラルをテキストシンボルで置換すれば作成することができます。
テキストシンボルを言語別にする必要があるとき、常にプログラムで使用する必要があります。たとえば、WRITE 命令で使用します。
レイアウトが項目長に依存する一覧をプログラムする場合は注意が必要です。これは、テキストシンボルの項目長が言語によって異なるためです。したがって、他の言語へ翻訳するためのスペースが十分あるように、テキストシンボルの項目長を最大に設定する必要があります。たとえば、英語の単語'program' は 7 文字ですが、それに相当するドイツ語の翻訳'Programm' は 8 文字になります。

以下には、WRITE 命令でテキストシンボルを使用する例が示されています。
SET BLANK LINES ON.
WRITE:
text-010,
/ text-aaa,
/ text-020,
/ 'Default Text 030'(030),
/ 'Default Text 040'(040).
上記スクリーンショットのテキストシンボルがこのプログラムにリンクされている場合、以下のように出力されます。

テキストシンボル 020 および 040 にテキストシンボルはありません。テキストシンボル 020 には、空白が表示されます。空白行の非表示がオフに設定されているので、空白はこのケースでのみ表示されます ( 空白行の作成を参照してください ) 。テキストシンボル 040 には、プログラムコードで指定したリテラルが表示されます。
