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. 

カタログの作成

ALV出力

 
  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表示

ALVを再表示します。

 
  CALL METHOD VG_GRID->REFRESH_TABLE_DISPLAY 
    EXPORTING 
      IS_STABLE = WL_STABLE. 
ログインするとコメントできます。