このトピックでは、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.