*参照サイト:https://blog.csdn.net/sap_jack/article/details/1816907
*ALV表示のみの場合、使う。
*メリット:①ALV構造の作成は不要 ②コーディングが簡易
REPORT YTEST_SAI_20210212.
START-OF-SELECTION.
TYPES:
* ALV表示内容の構造定義
BEGIN OF GXS_MSG,
VBELN TYPE VBELN_VA,
TYPE TYPE BAPI_MTYPE,
MSG TYPE BAPI_MSG,
END OF GXS_MSG,
GXT_MSG TYPE STANDARD TABLE OF GXS_MSG.
DATA:
GS_MSG TYPE GXS_MSG,
GT_MSG TYPE GXT_MSG,
GR_TABLE TYPE REF TO CL_SALV_TABLE, "ALV出力情報
GR_FUNCTIONS TYPE REF TO CL_SALV_FUNCTIONS, "ツールバー
GR_DISPLAY TYPE REF TO CL_SALV_DISPLAY_SETTINGS, "
GR_COLUMNS TYPE REF TO CL_SALV_COLUMNS_TABLE, "
GR_COLUMN TYPE REF TO CL_SALV_COLUMN_TABLE,
COLOR TYPE LVC_S_COLO.
* 表示内容の編集
GS_MSG-VBELN = '0000000001'.
GS_MSG-TYPE = 'E'.
GS_MSG-MSG = '受注変更に失敗しました(0000000001)'.
APPEND GS_MSG TO GT_MSG.
GS_MSG-VBELN = '0000000002'.
GS_MSG-TYPE = 'E'.
GS_MSG-MSG = '受注変更に失敗しました(0000000002)'.
APPEND GS_MSG TO GT_MSG.
GS_MSG-VBELN = '0000000003'.
GS_MSG-TYPE = 'S'.
GS_MSG-MSG = '受注変更に成功しました(0000000003)'.
APPEND GS_MSG TO GT_MSG.
* ■CL_SALV_TABLEで出力しますと、ALV構造の定義は不要
* ・ALV出力内容の設定
CL_SALV_TABLE=>FACTORY( IMPORTING R_SALV_TABLE = GR_TABLE CHANGING T_TABLE = GT_MSG ).
* ・ツールバーの設定
GR_FUNCTIONS = GR_TABLE->GET_FUNCTIONS( ).
GR_FUNCTIONS->SET_ALL( ABAP_TRUE ).
* ・ALVのヘッダテキストの設定(設定しないとプログラムの表題が表示される)
GR_DISPLAY = GR_TABLE->GET_DISPLAY_SETTINGS( ).
GR_DISPLAY->SET_STRIPED_PATTERN( CL_SALV_DISPLAY_SETTINGS=>TRUE ).
GR_DISPLAY->SET_LIST_HEADER( 'ALVヘッダテキスト:受注変更の結果一覧' ).
* ・ALVフォーマットに関しての設定
GR_COLUMNS = GR_TABLE->GET_COLUMNS( ).
* →表示項目の名称の変更
GR_COLUMN ?= GR_COLUMNS->GET_COLUMN( 'MSG' ). "変更対象項目ID
GR_COLUMN->SET_LONG_TEXT( 'メッセージ内容' ). "長テキスト
GR_COLUMN->SET_MEDIUM_TEXT( 'メッセージ' ). "中テキスト
GR_COLUMN->SET_SHORT_TEXT( 'MSG' ). "短テキスト
* →対象列の色の変更
GR_COLUMN ?= GR_COLUMNS->GET_COLUMN( 'MSG' ). "変更対象項目ID
COLOR-COL = '1'. "ALV コントロール: 色
COLOR-INT = '1'. "ALV コントロール: 強調
COLOR-INV = '0'. "ALV コントロール: 逆
GR_COLUMN->SET_COLOR( COLOR ).
* ・ALVの出力
GR_TABLE->DISPLAY( ).
■出力画面: