コンテンツフレーム起動

論理式での選択テーブルの使用 文書を SAP ライブラリストラクチャに組み込む

項目の値が選択テーブルの条件に合致しているかどうかをチェックするには、次のような特殊な論理式を使用します。

... <f> IN <seltab> ....

項目 <f> の内容が 選択テーブル<seltab> に格納されている条件を満たしていれば、論理式は真になります。<f> には、任意の基本項目を指定することができます。

項目 <f> が、SELECT-OPTIONS で選択テーブル<seltab> を宣言した項目と同じ場合は、次のように論理式の省略形を使用することができます。

... <seltab> ....

この省略型を RANGES 命令で定義した選択テーブルに対して使用することはできません。

 例

REPORT DEMO.

DATA WA_CARRID TYPE SPFLI-CARRID.

SELECT-OPTIONS AIRLINE FOR WA_CARRID.

WRITE: 'Inside', 'Outside'.

SELECT CARRID FROM SPFLI INTO WA_CARRID.
  IF WA_CARRID IN AIRLINE.
    WRITE: / WA_CARRID UNDER 'Inside'.
  ELSE.
    WRITE: / WA_CARRID UNDER Outside'.
  ENDIF.
ENDSELECT.

選択テーブルが次のように入力されているとします。

SIGN

OPTION

LOW

HIGH

I

BT

DL

UA

E

EQ

LH

 

この場合、次のように一覧が表示されます。

このグラフィックは添付のテキストに説明されています

SELECT ループで、データベーステーブル SPFLI からすべての行が読み込まれます。IF 命令によって、論理式の結果に応じてプログラムフローが 2 つの命令ブロックに分岐します。このプログラムでは、短縮形の IF AIRLINE も使えます。

例

REPORT DEMO.

DATA WA_SPFLI TYPE SPFLI.

SELECT-OPTIONS: S_CARRID FOR WA_SPFLI-CARRID,
                S_CITYFR FOR WA_SPFLI-CITYFROM,
                S_CITYTO FOR WA_SPFLI-CITYTO,
                S_CONNID FOR WA_SPFLI-CONNID.

SELECT * FROM SPFLI INTO WA_SPFLI.
  CHECK: S_CARRID,
         S_CITYFR,
         S_CITYTO,
         S_CONNID.

  WRITE: / WA_SPFLI-CARRID, WA_SPFLI-CONNID,
           WA_SPFLI-CITYFROM, WA_SPFLI-CITYTO.

ENDSELECT.

プログラムが開始すると、選択画面が表示されます。その画面でユーザが次のように入力したとします。

このグラフィックは添付のテキストに説明されています

次のように一覧が出力されます。

このグラフィックは添付のテキストに説明されています

SELECT ループで、データベーステーブル SPFLI からすべての行が読み込まれます。読み込まれた行のうち、選択テーブルの中の条件を満たす行だけが出力画面に書き込まれます。CHECK 命令の後にループパスから抜け出します。CHECK 命令では、論理式の省略形を使用しています。省略しない形式は次のとおりです。

CHECK: WA_SPFLI-CARRID IN S_CARRID,
       WA_SPFLI-CITYFR IN S_CITYFR,
       WA_SPFLI-CITYTO IN S_CITYTO,
       SPFLI-CONNID IN S_CONNID.

 

 

 

 

 

コンテンツフレーム終了