!--a11y-->

ステータスアイコンは表示エレメントで、これを使用してプログラムの状態をグラフィカルに表すことができます。すべての SAPgui
アイコンを使用することができます。ただし、実際は、『SAP
スタイルガイド』に記載されている
ステータス表示のアイコンのみを使用してください。
ステータスアイコンは、グラフィックスクリーンペインタのみで作成することができます。ステータスアイコンを作成する際には、名称と、ステータス項目と呼ばれる Dynpro 項目を割り当てます。Dynpro 項目の表示長によって、画面上でアイコンが占めることができるスペースの量が決まります。アイコン自体の他に、項目にテキストを挿入することもできます。ステータス項目の実際の長さ ( 定義長) は、アイコンの内部表示に加えて、指定したテキストやクイックインフォに必要な長さでなければなりません。スクリーンペインタでステータスアイコンを作成する際、画面にプレースホルダが表示されます。ABAP プログラムの PBO イベントで、アイコン自体とそのテキストおよびクイックインフォを指定する必要があります。
ABAP プログラムでアイコンを定義するには、Dynpro のステータス項目と同じ名称で、ABAP ディクショナリデータ型 ICONS-TEXT の項目を作成する必要があります。その後、BPO イベントでこの項目に必要な技術情報を書き込むことができます。画面が表示される際に、ステータス項目に情報が転送され、アイコンが表示されます。
ABAP プログラムで項目に情報を書き込むには、汎用モジュール ICON_CREATE を使用します。この汎用モジュールには、以下のインポートパラメータがあります。
キ NAME
必要なアイコンの名称。これらは、
SAP
スタイルガイド
、インクルードプログラム <ICON>
、スクリーンペインタまたはメニューペインタの該当する入力ヘルプに記載されています。
キ TEXT
このパラメータを使用すると、画面上でアイコンの後に表示されるテキストを入力することができます。
キ INFO
このパラメータでは、マウスポインタをアイコン上に置いたときに表示されるクイックインフォを指定することができます。
キ ADD_STDINF
このフラグによって、クイックインフォの表示のオン/ オフが切り替わります。
汎用モジュールによってこれらのパラメータが 1 つの文字列に変換され、エクスポートパラメータ RESULT に返されます。RESULT パラメータをステータス項目に割り当てると、ステータスアイコンを表示するために必要なすべての情報がステータス項目に格納されます。

ステータスアイコン
REPORT DEMO_DYNPRO_STATUS_ICONS.
DATA VALUE TYPE I VALUE 1.
DATA: STATUS_ICON TYPE
ICONS-TEXT,
ICON_NAME(20),
ICON_TEXT(10).
CALL SCREEN 100.
MODULE SET_ICON OUTPUT.
SET PF-STATUS 'SCREEN_100'.
CASE
VALUE.
WHEN 1.
ICON_NAME =
'ICON_GREEN_LIGHT'.
ICON_TEXT = TEXT-003.
WHEN 2.
ICON_NAME =
'ICON_YELLOW_LIGHT'.
ICON_TEXT = TEXT-002.
WHEN 3.
ICON_NAME =
'ICON_RED_LIGHT'.
ICON_TEXT = TEXT-001.
ENDCASE.
CALL FUNCTION 'ICON_CREATE'
EXPORTING
NAME =
ICON_NAME
TEXT =
ICON_TEXT
INFO =
'Status'
ADD_STDINF =
'X'
IMPORTING
RESULT = STATUS_ICON
EXCEPTIONS
ICON_NOT_FOUND =
1
OUTPUTFIELD_TOO_SHORT
= 2
OTHERS =
3.
CASE
SY-SUBRC.
WHEN 1.
MESSAGE E888(BCTRAIN) WITH TEXT-004.
WHEN 2.
MESSAGE E888(BCTRAIN) WITH TEXT-005.
WHEN 3.
MESSAGE E888(BCTRAIN) WITH TEXT-006.
ENDCASE.
ENDMODULE.
MODULE CANCEL
INPUT.
LEAVE PROGRAM.
ENDMODULE.
MODULE
CHANGE.
CASE
VALUE.
WHEN 1.
VALUE = 2.
WHEN 2.
VALUE = 3.
WHEN 3.
VALUE = 1.
ENDCASE.
ENDMODULE.
Dynpro 100 の次画面 ( 静的に定義) はそれ自体です。この Dynpro のレイアウトは次のとおりです。

表示長 12 、定義長 26 の STATUS_ICON というステータス項目が Dynpro に生成されています。スクリーンペインタでは、このステータスアイコンとテキスト用のスペースがプレースホルダによって表されます。
Dynpro 制御ロジックは次のとおりです。
PROCESS BEFORE
OUTPUT.
MODULE SET_ICON.
PROCESS AFTER
INPUT.
MODULE CANCEL AT EXIT-COMMAND.
MODULE CHANGE.
ダイアログモジュール SET_ICON によって、プログラムの項目の値にもとづいて、さまざまな値が汎用モジュール ICON_CREATE に渡されます。ステータス項目 STATUS_ICON に汎用モジュールのエクスポートパラメータ RESULT の内容が書き込まれます。その後、該当するアイコンが、そのテキストとクイックインフォとともに画面に表示されます。ユーザが 続行を選択すると、PAI で項目 VALUE の内容が変更され、その結果、PBO イベントで新しいアイコンが定義されます。以下のアイコンとテキストが表示されます。
低
中
高
クイックインフォは、すべてのアイコンについて ' ステータス' です。