14.1.5 算術演算子および式の演算子
式または条件では、演算子を組み合わせて使用することができます。使用できる演算子は、次のとおりです。
オペレーション | 説明 |
|---|---|
( | 左括弧 |
) | 右括弧 |
+ | 加算 |
- | 減算 |
/ | 除算 |
* | 乗算 |
= | 等しい |
^= | 等しくない (「注意:」参照) |
< | より小さい |
<= | 以下 |
> | より大きい |
>= | 以上 |
*EQ | 等しい |
*NE | 等しくない |
*LT | より小さい |
*LE | 以下 |
*GT | より大きい |
*GE | 以上 |
AND | かつ |
OR | または |
*AND | かつ |
*OR | または |
式の評価は、括弧内の左から右に行われるため、式が評価される順序に関して不安がある場合は、遠慮なく括弧を使用してください。
括弧を積極的に使用することで、プログラムの質も向上します。プログラマの意図をRDMLコンパイラに明確に伝えることができるだけでなく、さらに、将来アプリケーションを保守する人にも伝えることができます。
式の各要素はタイプと長さの互換性があるかどうかを検査されます。式または条件の構文も、正しいかどうかが検査されます。
LANSAで指定する条件と式はすべて「引用文字列」であるため、「14.1.6 引用符および引用文字列」も参照してください。
条件と式の例を次に示します。
- フィールド#Aが10より小さい場合のみ、RDMLコマンドが実行されるように条件付けます。
IF COND('#A < 10')
または IF COND('#A *LT 10')- フィールド#Aの値を10に変更します。
CHANGE FIELD(#A) TO(10)
または CHANGE #A (10)
または CHANGE #A 10
- フィールド#Bに10.62を加え、それを2で割った値よりもフィールド#Aが大きい場合のみ、RDMLコマンドが実行されるように条件付けます。
IF COND('#A < ((#B + 10.62) / 2)')
または IF ('#A < ((#B + 10.62) / 2)')
または IF '#A < ((#B + 10.62) / 2)'- フィールド#Aの値を、フィールド#Bに10.62を加え、それを2で割った値に変更します。
CHANGE FIELD(#A) TO('(#B + 10.62) / 2')
または CHANGE #A ('(#B + 10.62) / 2')
または CHANGE #A '(#B + 10.62) / 2'- 製品マスターに製品番号が見つかるまで、製品番号の入力をユーザーに要求します。製品番号が見つかると、その製品の詳細を表示します。
GROUP_BY NAME(#PRODUCT) FIELDS(#PRODNO #DESC #PRICE
#QOH #TAX)
BEGIN_LOOP
DOUNTIL COND('#IO$STS = OK')
REQUEST FIELD(#PRODNO)
FETCH FIELDS(#PRODUCT) FROM_FILE(PROMST)
WITH_KEY(#PRODNO)
ENDUNTIL
DISPLAY FIELDS(#PRODUCT)
END_LOOP
注意:
IBM iと、5250端末または5250エミュレーション・モードの端末を使用しているPCプラットフォーム(ASCII/EBCDIC)との間に変換テーブルの問題があるため、式で^=(等しくない)を使用する場合は注意が必要です。編集時に使用する端末/キーボードによっては、^=、¢ =、¬=と表示される可能性があります。この場合、代わりに*NEを使用してください。