ALVレポート SAP チュートリアル – ABAP リスト ビューア

どのレポートにも共通して必要な機能は、「列の配置」、並べ替え、フィルタリング、小計、合計などです。これらを最初から実装するには、多大なコーディング作業が必要になります。 これを回避するには、ABAP List Viewer (ALV) と呼ばれる概念を使用できます。

これらの各レポートは次のことを提供します。 機能モジュール これは、多くの努力をせずに目的の出力を生成するのに役立ちます。 それらを詳しく見てみましょう –

簡単なレポート

これらの重要な機能モジュール レポート ある–

  • Reuse_alv_fieldcatalog_merge
  • alv_list_display を再利用する
  • Reuse_alv_events_get
  • Reuse_alv_grid_display
  • Reuse_alv_commentary_write

REUSE_ALV_FIELDCATALOG_MERGE

この汎用モジュールは、ALV でデータを表示するために不可欠な項目カタログを設定するために使用されます。

出力データが XNUMX つのディクショナリ テーブルからのもので、すべての列が選択されている場合は、フィールド カタログを排他的に作成する必要はありません。 REUSE_ALV_LIST_DISPLAY のパラメーター (I_struct_name) としてテーブル名を指定するだけで十分です。 ただし、それを作成する必要がある場合もあります。

注: フィールドカタログは、内部テーブルに必要な詳細をすべて入力することで手動で入力することもできます。

の重要なパラメータは次のとおりです。

1.エクスポート:

  • I_program_name : レポート ID
  • I_internal_tabname : 内部出力テーブル
  • I_inclname : すべての動的フォームが処理されるレポート名を含めます。

2.変更

  • ct_fieldcat : 内部テーブル タイプ プール SLIS で宣言されたタイプ SLIS_T_FIELDCAT_ALV を使用します。

REUSE_ALV_LIST_DISPLAY

データを印刷する汎用モジュールです。

重要なパラメータは次のとおりです。

1.エクスポート:

  • I_callback_program : レポート ID
  • I_バイパスバッファ: 'X'
  • I_buffer_active: ' '
  • I_callback_pf_status_set : ユーザーが独自の pf ステータスを設定したり、既存の pf ステータスの機能を変更したりできるルーチン。
  • I_callback_user_command : 関数コードが処理されるルーチン。
  • I_構造名 : ディクショナリテーブルの名前
  • Is_Layout : レポートのレイアウトを設定する構造体
  • It_fieldcat : 印刷されるすべてのフィールドとその属性のリストを含む内部テーブル (このテーブルは関数によって自動的に設定できます)
  • It_events : ALV の考えられるすべてのイベントとそれに対応するフォーム名のリストを含む内部テーブル。

2. テーブル:

  • a. t_outtab : 出力されるデータを含む内部テーブル

REUSE_ALV_EVENTS_GET:

aa リスト タイプで発生する可能性のあるイベントのテーブルを返します。

1. インポート:

Et_イベント :イベント テーブルは、指定されたリスト タイプ (列 'NAME') に対して考えられるすべての CALLBACK イベントとともに返されます。 コールバックによってイベントが処理されるには、その「FORM」フィールドに値を入力する必要があります。 フィールドが初期化されている場合、イベントは無視されます。 エントリはイベント テーブルから読み取られ、フィールド「FORM」が入力され、タイプ プール SLIS の定数を使用してエントリが変更されます。

2.エクスポート:

I_list_type: 0 = 単純なリスト REUSE_ALV_LIST_DISPLAY

1 = 階層的順次リスト REUSE_ALV_HIERSEQ_LIST_DISPLAY

2 = 単純なブロック リスト REUSE_ALV_BLOCK_LIST_APPEND

3 = 階層的順次ブロックリスト REUSE_ALV_BLOCK_LIST_HS_APPEND

REUSE_ALV_GRID_DISPLAY

ABAP4.6バージョンからの新機能で、結果をプレビューではなくグリッドで表示します。

パラメータ:reuse_alv_list_displayと同じ

注: グリッドは大量のデータを処理できません。表示するデータの量が多い場合、並べ替えやスクロールダウンなどの機能は多くのリソースと時間を消費します。データ量が X の場合にリストまたはグリッドを使用するという明確な定義はありませんが、開発者は経験に基づいて決定を下す必要があります。確信が持てない場合は、リストの方が適しています。

REUSE_ALV_COMMENTARY_WRITE

これは、リストの見出しやその他のコメントを印刷するために Top-of-page イベントで使用されます。

重要なパラメータ

  • It_list_commentary : slis_t_listheader タイプの見出しを持つ内部テーブル。

この内部テーブルには XNUMX つのフィールドがあります。

  1. タイプ: 'H' – ヘッダー、'S' – 選択、'A' – アクション
  2. キー: typ が 'S' の場合のみ。
  3. Info : 印刷されるテキスト

ブロック レポート

これは単純なレポートのように見えますが、このレポートには並べ替えとフィルタリングの機能しかありません。このレポートは、出力に複数のレポートを表示する必要がある場合に使用されます。技術的に言えば、個別のブロックとして表示するデータを含む複数の内部テーブルがある場合は、ALV のブロック レポートを使用します。

このレポートの作成に使用される重要な関数は次のとおりです。

  • REUSE_ALV_BLOCK_LIST_INIT
  • REUSE_ALV_BLOCK_LIST_APPEND
  • REUSE_ALV_BLOCK_LIST_DISPLAY

REUSE_ALV_BLOCK_LIST_INIT

この汎用モジュールは、デフォルトの GUI ステータスなどを設定するために使用されます。パラメータは、reuse_alv_list_display または reuse_alv_grid_display で使用されるものと似ています。

REUSE_ALV_BLOCK_LIST_APPEND

この汎用モジュールはデータをブロックに追加します。

重要なパラメータ

1.エクスポート:

  • is_layout : ブロックのレイアウト設定
  • it_fieldcat : フィールドカタログ
  • I_tabname : 考えられるすべてのイベントを含む内部テーブル名

2.テーブル:

  • t_outtab : 出力データを含む内部テーブル。

REUSE_ALV_BLOCK_LIST_DISPLAY

この汎用モジュールは、上記の関数によってデータが追加されたリストを表示します。

パラメータ : すべてのパラメータはオプションです。

階層レポート

階層表示は、関連するデータを表示するために使用されます。販売注文と商品の詳細などです。ここでは、販売注文の詳細はヘッダーデータになる可能性があり、販売注文内のアイテムはアイテムデータになる可能性があります。

これに使用される汎用モジュールは次のとおりです。

REUSE_ALV_HIERSEQ_LIST_DISPLAY

書き出す:

  • I_CALLBACK_PROGRAM
  • I_CALLBACK_PF_STATUS_SET
  • I_CALLBACK_USER_COMMAND
  • IS_LAYOUT
  • イットフィールドキャット
  • それ_イベント
  • I_tabname_header : 最上位階層レベルの出力データを含むプログラム内の内部テーブルの名前。
  • I_tabname_item : 最下位階層レベルの出力データを含むプログラム内の内部テーブルの名前。
  • Is_keyinfo : この構造には、XNUMX つのテーブル (共有キー) をリンクするヘッダーと項目テーブルのフィールド名が含まれます。

テーブル類

  • t_outtab_header : 出力するデータを含むヘッダー テーブル
  • t_outtab_item : 最下位階層レベルの出力データを含むプログラム内の内部テーブルの名前。

内部テーブル、構造体、定数のすべての定義は、と呼ばれる型プールで宣言されます。 スリス。 この内部テーブルは、REUSE_ALV_FIELDCATALOG_MERGE' を使用して自動的に設定できます。

ディスプレイのバリエーション

  • 表示バリアントは、並べ替え基準、フィルタリング基準、合計と小計などの alv 出力のデフォルトのプロパティを設定するために使用されます。
  • 表示バリアントはユーザー固有および標準にすることができます (標準バリアントはどのユーザーでも使用できます)
  • 保存できる表示バリアントの種類は、汎用モジュールreuse_alv_list_display/reuse_alv_grid_displayで渡されるパラメータi_saveによって制御されます。
  • 選択画面で、使用する表示バリアントを選択するオプションを提供できます。

表示バリアントの選択/検証に関連する共通の機能モジュールは次のとおりです。

  1. Reuse_alv_variant_default_get
  2. Reuse_alv_variant_f4
  3. Reuse_alv_variant_existence

以上です ABAP – ALVプログラミング!

毎日のGuru99ニュースレター

今すぐ配信される最新かつ最も重要な AI ニュースで一日を始めましょう。