!--a11y-->

画面上にデータを出力するための基本的な ABAP 命令は WRITE です。
WRITE <f>.
この命令は、項目 <f> を現在の一覧に標準出力形式で出力します。デフォルトでは、一覧は画面に表示されます。
項目 <f> には以下を指定することができます。
キ 任意のデータオブジェクト ( データオブジェクトを参照)
キ フィールドシンボルまたは仮パラメータ ( フィールドシンボルを使用した作業を参照)
キ
テキストシンボル (
テキストエレメントの更新を参照)

印刷 を選択すると、出力画面から現在の出力一覧を直接印刷することができます。
プログラムに選択画面が定義されている ( 選択画面での処理を参照) 場合は、選択画面で実行と印刷を選択することができます。この場合、一覧は画面には表示されず、プリンタに直接出力されます。

PROGRAM sapmztst.
WRITE 'Hello, here I am!'.
このプログラムを開始すると、現在の画面 (ABAP エディタ: 第一画面 など) が終了し、次のように出力画面に分岐します。

出力画面の名前は、プログラム属性で指定されているプログラムの表題と同じです ( プログラム属性の更新を参照) 。
画面の 1
行目には一覧ヘッダが表示されます。デフォルトでは、一覧ヘッダはプログラムの表題と同じになります。ただし、プログラムの表題を変更することなく、実際のプログラムの外で一覧ヘッダを更新することができます。これについての詳細は、
テキストエレメントの更新を参照してください。画面右側には現在のページ番号 (1)
が表示されます。
横線が表示された後、実際の一覧が始まります。
検索 を選択すると、特定のパターンを検索することができます。
通常、画面出力は左寄せになります。複数の WRITE 命令を使用すると、それぞれの出力項目が列 ( 空白 1 個) で区切られて順に表示されます。現在の行に出力項目のためのスペースが足りない場合は、新しい行が開始されます。

PROGRAM sapmtest.
TABLES spfli.
.............
WRITE: 'COMPANY: ', spfli-carrid.
コロンとカンマの使い方に注意してください。この例では、2 つ の WRITE 命令を組み合せて 1 つの命令として使用しています。
リテラル ’COMPANY:’ とテーブル作業領域 SPFLI のコンポーネント CARRID の 2 つの項目が、次のように連続して画面に出力されます。
COMPANY: AA
出力画面上のデータ項目の書式は、データ型に依存します ( 既定の基本データ型を参照してください) 。
既定データ型の出力形式
|
データ型 |
出力長 |
位置 |
|
C |
項目長 |
左寄せ |
|
D |
8 |
左寄せ |
|
F |
22 |
右寄せ |
|
I |
11 |
右寄せ |
|
N |
項目長 |
左寄せ |
|
P |
2 * 項目長 (+1) |
右寄せ |
|
T |
6 |
左寄せ |
|
X |
2 * 項目長 |
左寄せ |
数値データ型の F 、I 、P は右詰めで出力され、左側が空白で埋められます。十分なスペースがあれば、桁区切り記号も出力されます。データ型 P の項目に小数部がある場合は、デフォルトの出力長が 1 文字分長くなります。

データ型 D は、日付の内部書式と出力書式が異なります。WRITE 命令を使用してデータを表示すると、ユーザのマスタレコードで指定されている書式 ( 例: DD/MM/YYYY 、MM/DD/YYYY) にもとづいてデータ型 D の日付が自動的に変換されます。

PROGRAM sapmtest.
DATA number TYPE p VALUE '-1234567.89' DECIMALS 2.
WRITE: 'Number', number, 'is packed'.
出力は次のようになります。
Number 1,234,567.89- is packed
項目 NUMBER は全長 13 桁で、9 桁の数値、小数点、先頭のマイナス符号、および 2 つの位区切り記号で構成されています。データ型 P の項目長は 8 バイトですから、項目 NUMBER の出力長は 2*8+1=17 文字となります。残りの文字数分は空白で埋められています。つまり、リテラル'Number' と実際の数値の間には 5 つの空白文字があります。