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