7.9.3 CHANGEの使用例

LANSA

7.9.3 CHANGEの使用例


例1:フィールド#COUNTの値を1ずつ大きくします。

CHANGE     FIELD(#COUNT) TO('#COUNT + 1')
 

例2:フィールド#QUANTITYをフィールド#COUNTに加算します。

CHANGE     FIELD(#COUNT) TO('#COUNT + #QUANTITY')
 

例3:グループ#ORDERLINE内のすべてのフィールドをNULL値に変更します。"NULL"値は、英数字フィールドの場合はブランク、数値フィールドの場合は0です。

GROUP_BY   NAME(#ORDERLINE) FIELDS(#ORDLIN #PRODUCT #QUANTITY #PRICE)
 
CHANGE     FIELD(#ORDERLINE) TO(*NULL)
 

これは以下の例と同じです。

CHANGE     FIELD(#ORDLIN)   TO(*NULL)
CHANGE     FIELD(#PRODUCT)  TO(*NULL)
CHANGE     FIELD(#QUANTITY) TO(*NULL)
CHANGE     FIELD(#PRICE)    TO(*NULL)
 

これは以下の例と同じです。

CHANGE     FIELD(#ORDLIN)   TO(*ZERO)
CHANGE     FIELD(#PRODUCT)  TO(*BLANKS)
CHANGE     FIELD(#QUANTITY) TO(*ZERO)
CHANGE     FIELD(#PRICE)    TO(*ZERO)
 

これは以下の例と同じです。

CHANGE     FIELD(#ORDLIN)   TO(0)
CHANGE     FIELD(#PRODUCT)  TO(''' ''')
CHANGE     FIELD(#QUANTITY) TO(0)
CHANGE     FIELD(#PRICE)    TO(0)
 

例4:グループ#ORDERLINE内のすべてのフィールドを、データ・ディクショナリで定義されているデフォルト値に変更します。

GROUP_BY   NAME(#ORDERLINE) FIELDS(#ORDLIN #PRODUCT #QUANTITY #PRICE)
CHANGE     FIELD(#ORDERLINE) TO(*DEFAULT)
 

これは以下の例と同じです。

CHANGE     FIELD(#ORDLIN)   TO(*DEFAULT)
CHANGE     FIELD(#PRODUCT)  TO(*DEFAULT)
CHANGE     FIELD(#QUANTITY) TO(*DEFAULT)
CHANGE     FIELD(#PRICE)    TO(*DEFAULT)
 

例5:フィールド#A、#B、および#Cのそれぞれに#QUANTITY×#PRICEの結果が保持されるように変更します。

CHANGE     FIELD(#A #B #C) TO('#QUANTITY * #PRICE')
 

これは以下の例と同じです。

CHANGE     FIELD(#A) TO('#QUANTITY * #PRICE')
CHANGE     FIELD(#B) TO('#QUANTITY * #PRICE')
CHANGE     FIELD(#C) TO('#QUANTITY * #PRICE')
 

例6:フィールド#A、#B、および#Cのそれぞれに値1が保持されるように変更します。

CHANGE     FIELD(#A #B #C) TO(1)
 

これは以下の例と同じです。

CHANGE     FIELD(#A) TO(1)
CHANGE     FIELD(#B) TO(1)
CHANGE     FIELD(#C) TO(1)
 

例7:フィールド#Aおよび#Bに'#A + 1'の結果が保持されるように変更します。

CHANGE     FIELD(#A #B) TO('#A + 1')
 

これは以下の例と同じです。

CHANGE     FIELD(#A) TO('#A + 1')
CHANGE     FIELD(#B) TO('#A + 1')
 

結果的な#Aおよび#Bの値が同じにならないことに注意してください。この例では、#Bの値は、#Aより1だけ大きくなります。

これは必ずしも間違いではありませんが、予期される結果ではない場合もあります。#Aと#Bの値を同じ値(#A + 1)にするには、以下のいずれかの方法を使用してください。

CHANGE     FIELD(#B #A) TO('#A + 1')
 

これは以下の例と同じです。

CHANGE     FIELD(#B) TO('#A + 1')
CHANGE     FIELD(#A) TO('#A + 1')
 

あるいは

CHANGE     FIELD(#A) TO('#A + 1')
CHANGE     FIELD(#B) TO(#A)