ABAP 選択画面のテキストを拡張する方法

  選択画面&イベント

概要

選択項目に設定できるテキストの長さは最大30桁と決められているが、要件次第では収まらない事もある。
特に英語等では文字数が多くなってしまう為、30桁以内で考えて!とユーザーにお願いする事もあると思う。
どうしても30桁を超えるテキストを設定したい場合は、元々用意されている選択テキストではなくテキストエレメントで
値を設定し、それを表示できるように各選択項目の位置を調整する事で表示する事が可能だ。

サンプルコード:単一項目

SELECTION-SCREEN BEGIN OF LINE.
  SELECTION-SCREEN COMMENT 1(60)  text-A01.
  PARAMETERS p_bukrs TYPE bukrs.
SELECTION-SCREEN END   OF LINE.

説明

SELECTION-SCREEN BEGIN OF LINE. ~ SELECTION-SCREEN END OF LINE.は、この間の定義を一行で表示するという命令だ。
つまり、一行にコメントとP_BUKRSを表示するという事になる。
そしてコメントにはテキストエレメントのA01の値を取得している。(今回の例では60桁までのテキストが入力可能だ)

これを応用して一行に二つのラジオボタンを表示する事もできる。

サンプルコード:ラジオボタン

SELECTION-SCREEN BEGIN OF LINE.
  SELECTION-SCREEN COMMENT 1(20)   text-B01.
  SELECTION-SCREEN POSITION 22.
  PARAMETER: r1 RADIOBUTTON GROUP rg DEFAULT 'X'.
  SELECTION-SCREEN COMMENT 41(20)   text-B02.
  SELECTION-SCREEN POSITION 62.
  PARAMETER: r2 RADIOBUTTON GROUP rg.
SELECTION-SCREEN END   OF LINE.

説明

SELECTION-SCREEN BEGIN OF LINE. ~ SELECTION-SCREEN END OF LINE.にオブジェクト(コメントやPARAMETER)を配置する事ができる。
この例ではコメントの位置だけでなく、POSITION命令でラジオボタンの位置も指定している。
このように選択画面はスクリーンを自作しなくてもある程度カスタマイズ可能だ。

補足

POSITION命令を使う場合は、同じ位置にオブジェクトが重ならなさいよう気をつけよう。
重なっている場合は、有効化時にエラーになる事もある。