ABAP ALVヘッダテキストの長さを変更

  アドオンプログラム

概要

ALVのヘッダタイトルが短い!長くしたい!と思った経験ありませんか?
各項目がデータエレメントを参照している場合は、短・中・長・ヘッダの4つのテキストが登録されている為
データ長に合わせて自動的に適した長さのテキストが表示されるよう調整されてしまいます。
そんな時はフィールドカタログにあるddictxtの値を変更してみよう。

サンプルコード

DATA: 
  it_fieldcat        TYPE slis_t_fieldcat_alv,
  wa_fieldcat        TYPE slis_fieldcat_alv.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
  EXPORTING
    i_structure_name       = 'XXXXXXXXXX'
    i_client_never_display = 'X'
  CHANGING
    ct_fieldcat            = it_fieldcat
  EXCEPTIONS
    inconsistent_interface = 1
    program_error          = 2
    OTHERS                 = 3.

LOOP AT it_fieldcat INTO wa_fieldcat.
  wa_fieldcat-ddictxt = 'L'.
  MODIFY it_fieldcat FROM wa_fieldcat INDEX sy-tabix.
ENDLOOP.

説明

グローバル構造を使用している場合は、汎用モジュール:REUSE_ALV_FIELDCATALOG_MERGEを使用してフィールドカタログを取得する事ができる。
フィールドカタログはddictxtという項目をもっているので、その値を表示したいテキストの長さに合わせて更新しよう。
値はS、M、Lでそれぞれ短、中、長を指す。
その他にも、表示位置の変更、非表示、前ゼロの設定、数量や金額の場合は参照単位の設定を行ったり等の様々な設定を行う事が可能だ。
特殊な表示が必要であればフィールドカタログの項目を確認してみる事をお勧めする。

ALVの基本的な作り方はこちらを参照