ALV出力の基本実装
このトピックでは、一つの簡単なサンプルを例として取り上げてALV出力の基本実装を説明します。
サンプルの概要
サンプルプログラムは以下の機能を実現します。
- 会社コードを指定します
- 対象会計伝票明細一覧を出力します
プログラム実装
ALV用タイププールを宣言
TYPE-POOLS: slis.
ALV用テーブル構造を定義
TYPES: BEGIN OF t_account_doc, bukrs TYPE bseg-bukrs, belnr TYPE bseg-belnr, gjahr TYPE bseg-gjahr, buzei TYPE bseg-buzei, pswbt TYPE bseg-pswbt, pswsl TYPE bseg-pswsl, END OF t_account_doc. TYPES ttbl_account_doc TYPE STANDARD TABLE OF t_account_doc.
必要な変数を定義
DATA g_account_doc TYPE t_account_doc. DATA gtbl_account_doc TYPE ttbl_account_doc. DATA g_layout TYPE slis_layout_alv. DATA gtbl_fieldcat TYPE STANDARD TABLE OF slis_fieldcat_alv. DATA g_fieldcat TYPE slis_fieldcat_alv.
選択画面を定義
DATA: g_bukrs TYPE bukrs. SELECTION-SCREEN BEGIN OF BLOCK LAYOUT WITH FRAME . SELECT-OPTIONS: S_BUKRS FOR g_bukrs. SELECTION-SCREEN END OF BLOCK LAYOUT.
本処理を実装
実行ボタン押下後の本処理は、START-OF-SELECTIONイベントブロックに実装されます。
出力データを取得
SELECT bukrs belnr gjahr buzei pswbt pswsl FROM bseg INTO CORRESPONDING FIELDS OF TABLE gtbl_account_doc UP TO 10 ROWS WHERE bukrs in s_bukrs.
ALV用項目カテゴリを設定
*フィールドカタログ CLEAR g_fieldcat. "内部テーブルのフィールド g_fieldcat-fieldname = 'BUKRS'. "参照するテーブル g_fieldcat-ref_tabname = 'BSEG'. "参照するフィールド g_fieldcat-ref_fieldname = 'BUKRS'. APPEND g_fieldcat TO gtbl_fieldcat. CLEAR g_fieldcat. g_fieldcat-fieldname = 'BELNR'. g_fieldcat-ref_tabname = 'BSEG'. g_fieldcat-ref_fieldname = 'BELNR'. APPEND g_fieldcat TO gtbl_fieldcat. CLEAR g_fieldcat. g_fieldcat-fieldname = 'GJAHR'. g_fieldcat-ref_tabname = 'BSEG'. g_fieldcat-ref_fieldname = 'GJAHR'. APPEND g_fieldcat TO gtbl_fieldcat. CLEAR g_fieldcat. g_fieldcat-fieldname = 'BUZEI'. g_fieldcat-ref_tabname = 'BSEG'. g_fieldcat-ref_fieldname = 'BUZEI'. APPEND g_fieldcat TO gtbl_fieldcat. CLEAR g_fieldcat. g_fieldcat-fieldname = 'PSWBT'. g_fieldcat-ref_tabname = 'BSEG'. g_fieldcat-ref_fieldname = 'PSWBT'. g_fieldcat-cfieldname = 'PSWSL'. *通貨コードのフィールドを参照する。 *通貨に応じて自動で書式変更してくれる。 APPEND g_fieldcat TO gtbl_fieldcat. CLEAR g_fieldcat. g_fieldcat-fieldname = 'PSWSL'. g_fieldcat-ref_tabname = 'BSEG'. g_fieldcat-ref_fieldname = 'PSWSL'. APPEND g_fieldcat TO gtbl_fieldcat.
ALV表示
"タイトル表示 g_layout-window_titlebar = '伝票照会'. CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING it_fieldcat = gtbl_fieldcat is_layout = g_layout i_save = 'A' TABLES t_outtab = gtbl_account_doc EXCEPTIONS OTHERS = 0 .