ALV出力の基本実装

 

このトピックでは、ALVコントロールを利用したALV出力実装の基本方法を取り上げて説明します。

イベントキャッチ

*---------------------------------------------------------------------*
*       クラス イベントキャッチ(定義)
*       CLASS lcl_event_receiver DEFINITION
*---------------------------------------------------------------------*
CLASS LCL_EVENT_RECEIVER DEFINITION .
  PUBLIC SECTION.
*   選択行のダブルクリックイベント
*   CATCH THELINE BOUBLECLICK EVENT
    METHODS CATCH_DOUBLECLICK
      FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID
      IMPORTING E_ROW
                E_COLUMN.

*   グリッドのツールバー(PDFボタン=オン)
*   CATCH THE TOOLBAR'S PDF BUTTON
    METHODS HANDLE_TOOLBAR_PDF
      FOR EVENT TOOLBAR  OF CL_GUI_ALV_GRID
      IMPORTING E_OBJECT.

*   グリッドのコマンド
*   CATCH THE GRID COMMAND EVENT
    METHODS HANDLE_UCOMM
      FOR EVENT USER_COMMAND  OF CL_GUI_ALV_GRID
      IMPORTING E_UCOMM  .

ENDCLASS.                    "lcl_event_receiver DEFINITION

ALV出力用コンテナ対象

DATA  VG_GRID      TYPE REF TO CL_GUI_ALV_GRID.

ALVイベントキャッチ

DATA: EVENT_RECEIVER TYPE REF TO LCL_EVENT_RECEIVER.

ALV出力用コンテナ対象をインスタンス化する。

    CREATE OBJECT VG_GRID
      EXPORTING
        I_PARENT = CL_GUI_CONTAINER=>SCREEN0.
  CALL METHOD VG_GRID->SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
      IS_LAYOUT                     = WL_SLA
    CHANGING
      IT_OUTTAB                     = TG_ALV[]
      IT_FIELDCATALOG               = TG_FIELDCAT[]
    EXCEPTIONS
      INVALID_PARAMETER_COMBINATION = 1
      PROGRAM_ERROR                 = 2
      TOO_MANY_LINES                = 3
      OTHERS                        = 4.

  CALL METHOD VG_GRID->SET_READY_FOR_INPUT "
    EXPORTING
      I_READY_FOR_INPUT = 1.

ALV出力用イベント対象をインスタンス化します。

CREATE OBJECT EVENT_RECEIVER.

ALV出力用イベント「ダブルクリック」を実装します。

SET HANDLER EVENT_RECEIVER->CATCH_DOUBLECLICK FOR VG_GRID.

「ツールバー」イベントを実装します。

SET HANDLER EVENT_RECEIVER->HANDLE_TOOLBAR_FAX FOR VG_GRID 

ALVを再表示します。

  CALL METHOD VG_GRID->REFRESH_TABLE_DISPLAY
    EXPORTING
      IS_STABLE = WL_STABLE.