SAP_ALV(CL_SALV_TABLE)

*参照サイト: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( ).

■出力画面:
SAP_ALV(CL_SALV_TABLE)

上一篇:顶会paper越来越多,我该怎么看?


下一篇:数据结构10 Network Flow Problems