ALV出力の基本実装

 

このトピックでは、一つの簡単なサンプルを例として取り上げてALV出力の基本実装を説明します。

サンプルの概要

サンプルプログラムは以下の機能を実現します。

  1. 会社コードを指定します
  2. 対象会計伝票明細一覧を出力します

プログラム実装

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 
  . 

サンプルの実行

ログインするとコメントできます。