【ABAP】5分で解説―ALVの基本を完全マスター

ABAP

ABAPで一覧画面を実装する際に利用する「ALV」の利用方法について解説します。

ALVとは、「SAP List Viewer」の略でSAPが用意してくれている一覧表示ツール(汎用モジュール)群です。このページでは以下の内容について整理しています。

このページで学べる内容

  • ALVとは何か?
  • ALVを利用する際の大まかな流れ
  • コーディング方法
  • ALV利用時の注意点

ABAPerであれば確実に知っておきたい内容ばかりなので是非最後までご覧ください。ALVをマスターすれば、コーディングできる機能の幅・種類もぐっと広がります!

ALVとは?

ALVは、用意したデータを一覧表示することができるSAPが用意してくれているツールです。ツールといっても実際には通常の汎用モジュールと同じであるため、仕組み(どのような汎用モジュールを利用しているのか?)さえ知ってしまえば誰でも簡単に実装することが可能です。

※クラスを利用してALV表示をする方法もありますが、ここでは汎用モジュールを利用した方法について解説していきます。

ALVの利用方法をざっと説明すると、大きく3ステップに分解できます。

ALV表示の3ステップ

まずは、ALV出力用の「構造」を定義。その後、フィールドカタログを取得(汎用モジュールを利用)し、ALVを表示(こちらも汎用モジュールを利用)するだけです。

ここからは、それぞれのステップを順を追って解説していきます。

1.ALV用構造の作成

まずは、ALV用構造の作成を行います。

ALV用構造の作成と説明してしまいましたが、これはDATA命令で定義する「構造」のことを指しています。したがって、ALV用構造の作成については説明不要ですが、構造定義方法について知りたい方は以下の記事をご覧ください。

内部テーブル/構造/変数―ABAPの3つの基本

2.フィールドカタログの取得

フィールドカタログとは、簡単に言うと「表示するデータ」のことです。つまり、内部テーブルに格納されているデータということです。

このフィールドカタログの取得は、汎用モジュール「LVC_FIELDCATALOG_MERGE」を利用して行います。

※冒頭でも説明した通り、クラス「CL_GUI_ALV_GRID」を利用する方法もありますが、ここでは汎用モジュールを用いた方法を解説します。

LVC_FIELDCATALOG_MERGE

汎用モジュール「LVC_FIELDCATALOG_MERGE」は、IMPORT/EXPORTなどのパラメータが難解な汎用モジュールです。実際に何の値を設定すればよいのかわからないというのが実情ですが、最小限設定すべきは2つだけ

EXPORTING: LVC_FIELDCATALOG_MERGE

  • I_STRUCTURE_NAME・・・ALV用構造名(構造,テーブル,ビュー)

IMPORTING: LVC_FIELDCATALOG_MERGE

  • CT_FIELDCAT・・・内部テーブル:フィールドカタログ

汎用モジュールに上記2つのパラメータを渡すことで、フィールドカタログの取得が完了です。言うまでもなく、作成したALV用構造と内部テーブルのデータ型・項目は一致している必要があります。

3.ALVの表示

2で取得したフィールドカタログを表示します。こちらも汎用モジュールを用います。

REUSE_ALV_GRID_DISPLAY_LVC

ALV表示用の汎用モジュールですが、こちらの汎用モジュールもIMPORT/EXPORTなどのパラメータが無限といってよいほどありますが、基本的に設定すべきは以下の通りです。

EXPORTING: LVC_FIELDCATALOG_MERGE

  • I_CALLBACK_PROGRAM・・・SY-REPID(プログラムID)
  • IT_FIELDCAT・・・内部テーブル:フィールドカタログ

TABLES: LVC_FIELDCATALOG_MERGE

  • T_OUTTAB・・・内部テーブル ⇒ ALV情報

これで大まかなALV出力のコーディングは完了です。

タイトルとURLをコピーしました