項目カテゴリの制御

 

ALV出力時の項目カテゴリ制御は主に以下三つの方法があります。

  • 自動生成
  • マニュアル生成
  • 半自動生成

このトピックでは、各方法をそれぞれ取り上げて説明します。

自動生成

出力テーブルの構造がデータディクショナリに定義されている場合、汎用モジュールを呼び出す際に入力パラメータI_STRUCTURE_NAMEで構造体の名前を指定することにより、項目カテゴリは内部に自動的に生成されることになります。
ここで注意すべきのは、出力テーブルは必ず該当構造体を使って定義しなけれなりません。そうではない場合、なかみが同じでも、実行時ランタイムエラーが発生します。

ALV出力の基本実装をこのやり方で見直す場合、ABAPディクショナリに該当構造体を定義しておけば、
以下のようにソースプログラムがすごくシンプルになります。

 
REPORT  YLWF_ALV_FC_AUTO. 
*ALV用のタイププール 
TYPE-POOLS: slis. 

TYPES ttbl_account_doc TYPE STANDARD TABLE OF YLWF_FC_AUTO_STRUC. 

DATA g_account_doc TYPE YLWF_FC_AUTO_STRUC. 
DATA gtbl_account_doc TYPE ttbl_account_doc. 


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. 

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' 
    EXPORTING 
     i_structure_name = 'YLWF_FC_AUTO_STRUC' 
     i_grid_title       = '伝票照会' 
   TABLES 
      t_outtab           = gtbl_account_doc 
    EXCEPTIONS 
     OTHERS             = 0 
      . 

マニュアル生成

データディクショナリでは、テーブルデータ型LVC_T_FCAT によって項目カタログが定義されています。項目カタログテーブルの各行には、出力テーブルの項目が記述されています。
項目カタログのマニュアル生成は、上記のテーブルを作成して、汎用モジュールを呼び出す際に入力パラメータIT_FIELDCATとして受け渡します。

実装の詳細は、ALV出力の基本実装をご参照ください。

半自動生成

項目カタログの半自動生成は、

  1. ABAPディクショナリーの構造体から項目カタログを自動生成する
  2. 自動生成された項目カタログに対してマニュアル修正を加える

というプロセスになります。

ABAPディクショナリーの構造体から項目カタログを自動生成するには、汎用モジュールLVC_FIELDCATALOG_MERGEを使用します。

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