0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【ABAP】ALV – 一覧へのステータスアイコン表示(サンプルあり)

Last updated at Posted at 2022-06-21
大量データの一括登録時などで、処理結果をALV一覧で出すときに信号アイコンで処理ステータスを表現することがあります。状態把握という点で言えば、色の違いで把握できるので使う側からすればわかりやすくなります。

早速実装方法を見ていきましょう。

サンプルコードは下記投稿のものをベースに更新します。

【ABAP】ALV – 一覧リフレッシュ機能の実装(サンプルあり)

実装方法

ALV表示用構造にステータス項目を追加

ステータス表示用の項目「STATUS」を追加しました。

image.png

プログラム実装

レイアウトパラメータにステータスアイコン用の設定をします。

  wa_layout-lights_fieldname  = 'STATUS'.

  loop at it_main assigning field-symbol(<fs_main>).
    <fs_main>-status = sy-tabix.
  endloop.

  DATA: it_extab TYPE slis_t_extab.
  APPEND '&GRAPH' TO it_extab.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      it_fieldcat              = it_fcat
      is_layout                = wa_layout
      i_callback_program       = sy-repid
      i_callback_pf_status_set = 'SET_GUI_STATUS'
      i_callback_user_command  = 'USER_COMMAND'
      it_excluding             = it_extab
    TABLES
      t_outtab                 = it_main
    EXCEPTIONS
      program_error            = 1
      OTHERS                   = 2.

結果がこちらです。構造上は最終行にステータスを追加しましたが、ALV表示錠は先頭に表示されます。

ステータスの設定値は以下の通りです。

1 赤信号
2 黄信号
3 青信号

image.png
一覧に信号アイコンが表示されましたが、一つ問題が。

ステータスの項目が「Exception(例外)」となっているのです。ラベルが「Status(ステータス)」であるにも関わらず。

ステータスのラベルを直すために次の一文を追加します。

  wa_layout-lights_rollname   = 'STEP_COLOR'.</span>

レイアウトパラメータの「LIGHTS_ROLLNAME」にステータス項目のデータエレメントを指定します。そうすることで、データエレメントのラベルが表示されるようになります。

image.png

まとめ

  • レイアウトパラメータにステータスアイコン表示用の項目あり
  • 項目名とステータスの値を設定するだけで信号アイコンが表示される
  • ラベルが「Exception(例外)」と表示される場合はデータエレメントのパラメータ設定漏れを疑うこと

これだけ覚えておけば簡単に実装できますので参考にしてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?