本ページでは、選択画面作成の際に必須となるPARAMETERS命令について解説します。
ABAPで作成する選択画面は、SELECTION-SCREEN命令/SELECT-OPTIONS命令、そして本ページで解説するPARAMETERS命令の組み合わせで成立します。
ABAPエンジニアを目指す方であれば知らないと恥ずかしい超・基本事項ですので、是非最後までご覧ください。
PARAMETERS命令とは?
PARAMETERS命令は、選択画面内に入力項目を作成する命令です。
上記の項目 "INT1" と "INT2" はPARAMETERS命令を使って作成された入力項目です。
最もBasicでシンプルな入力項目です。
SELECT-OPTIONS命令も選択画面中の入力項目を作成する命令です。
SELECT-OPTIONS命令では、最小値・最大値の入力(from/to指定)ができる入力項目を定義します。
PARAMETERS命令が作成する項目は、あくまでも指定値1つのみしか入力することができない項目です。
構文ルール:PARAMETERS
PARAMETERS (項目名) TYPE (データ型)(オプション).
構文ルールはDATA命令とほぼ同じです。ユーザによって入力された値は、プログラムの処理では1つの変数のような扱いを受けると考えてOK。
そのため、PARAMETERS命令は、DATA命令と同じように箱を作ってあげるようなイメージで問題ありません。
プログラムを実行する際の条件を変更するような使い方をすることからPARAMETERSと呼ばれると理解すれば命令の意味もよく理解できるはずです。
実際にPARAMETERS命令の使い方と簡単な画面をご覧ください。
*&---------------------------------------------------------------------* *& Report YTEST *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT YTEST. PARAMETERS: TEXT(15) TYPE C, DATE TYPE D, NUM TYPE P DECIMALS 4.
PARAMETERS命令:オプション
PARAMETERS命令には様々な属性定義オプションが存在します。
例えば、その項目が必須入力なのかどうか。非表示項目なのかどうか。
それらのオプションの動作を解説します。
OBLIGATORY:必須入力
オプションにOBLIGATORYと記述することで、その項目への値入力が必須となります。
PARAMETERS: TEXT1(15) TYPE C OBLIGATORY.
TYPEオプションの後ろに記述します。
*&---------------------------------------------------------------------* *& Report YTEST *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT YTEST. PARAMETERS: TEXT1(15) TYPE C OBLIGATORY, TEXT2(15) TYPE C, TEXT3(15) TYPE C.
"TEXT1" の項目にチェックマークがついています。これは、その項目が必須入力であるということを示します。
もし、この項目に値が入っていない場合に実行ボタンを押すと、エラーメッセージが出力されプログラムを実行することができません。
NO-DISPLAY:非表示
続いて、NO-DISPLAYオプションについて。
NO-DISPLAYオプションは画面を非表示にするオプションです。
*&---------------------------------------------------------------------* *& Report YTEST *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT YTEST. PARAMETERS: TEXT1(15) TYPE C OBLIGATORY, TEXT2(15) TYPE C NO-DISPLAY, TEXT3(15) TYPE C.
上記サンプルコードを実行した結果がこちら。
NO-DISPLAYオプションを適用した"TEXT2" という項目が非表示となっています。ユーザから見る画面から"TEXT2" という項目を確認することができなくなります。
ただし、あくまでも非表示になっているだけでこの項目は依然として存在しています。他のプログラムから値を受け取ることを目的としている項目の場合に用います。
VISIBLE LENGTH:表示する項目長
VISIBLE LENGTHオプションで、表示する長さを指定することが可能です。
*&---------------------------------------------------------------------* *& Report YTEST *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT YTEST. PARAMETERS: TEXT1(15) TYPE C OBLIGATORY, TEXT2(15) TYPE C NO-DISPLAY, TEXT3(15) TYPE C VISIBLE LENGTH 5, TEXT4(15) TYPE C.
"TEXT2" の項目は15で定義していますが、実際に表示されているのは5文字分だけ。
このオプションを利用しているシーンはあまり見かけませんが、オプションの1つとして覚えておきましょう。
ちなみに、このVISIBLE LENGTHオプションはあくまでも表示項目を減らすだけであって、入力可能な長さは変わりません。
AS CHECKBOX:チェックボックス
チェックボックスを作成する際に利用するオプションです。
*&---------------------------------------------------------------------* *& Report YTEST *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT YTEST. PARAMETERS: TEXT1(15) TYPE C OBLIGATORY, TEXT2(15) TYPE C NO-DISPLAY, TEXT3(15) TYPE C VISIBLE LENGTH 5, TEXT4 TYPE C AS CHECKBOX, TEXT5(15) TYPE C.
チェックがされている場合の値は「X」となります。
事前定義されているABAPデータ型の1つ。
データ型 | 意味 | 項目長 |
---|---|---|
C | 文字列 | 1~65535 |
AS LISTBOX:リストボックスの作成
AS LISTBOXオプションを利用するとリストボックスが作成されます。
AS LISTBOXを用いる際は、先ほど解説した「VISIBLE LENGTHオプション」と同時に指定する必要があります。
*&---------------------------------------------------------------------* *& Report YTEST *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT YTEST. PARAMETERS: TEXT1(15) TYPE C OBLIGATORY, TEXT2(15) TYPE C NO-DISPLAY, TEXT3(15) TYPE C VISIBLE LENGTH 5, TEXT4 TYPE C AS CHECKBOX, TEXT5(15) TYPE C VISIBLE LENGTH 5 AS LISTBOX, TEXT6(15) TYPE C.
RADIOBUTTON GROUP:ラジオボタン
RADIOBUTTON GROUPオプションを利用するとラジオボタンが作成されます。
*&---------------------------------------------------------------------* *& Report YTEST *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT YTEST. PARAMETERS: TEXT1(15) TYPE C OBLIGATORY, TEXT2(15) TYPE C NO-DISPLAY, TEXT3(15) TYPE C VISIBLE LENGTH 5, TEXT4 TYPE C AS CHECKBOX, TEXT5(15) TYPE C VISIBLE LENGTH 5 AS LISTBOX, TEXT6 TYPE C RADIOBUTTON GROUP r1, TEXT7 TYPE C RADIOBUTTON GROUP r1, TEXT8 TYPE C RADIOBUTTON GROUP r1.
初期値の割り当て
PARAMETERS命令で定義した項目に初期値を与えることも可能です。(基本は初期値はすべてブランクで設定されています。)
初期値設定の使いどころとしては、ユーザへのサジェストであったり、入力内容が決まっている場合に用います。
初期値の割り当ては、DEFAULTオプションを用います。
DEFAULTオプションの使い方については、下記のページで詳しく解説しておりますので、合わせてご参照ください。
Tips:TYPEオプションを用いない場合
実はPARAMETERS命令は、TYPEオプションは必須ではありません。
TYPEオプションを利用しない場合、デフォルトで長さ1の「C:文字型」で定義されます。
ただし、この知識を知っている人はかぎられてくるので、PARAMETERS命令を用いる場合は必ずTYPEオプションをセットで利用するようにしましょう。
ABAPを1から勉強したい方は
初めてABAPを勉強するのは結構難しいですよね。
でもその悩みを抱えているのは一人じゃありません。全てのABAP使いが同じ道を進んできました。
ABAPをはじめとするプログラミングスキルを武器に、時間と場所に捉われない自由な生き方を目指してみませんか?
読者料典 【完全無料】ABAP:学習カリキュラム ←こちらから!