Page History
[ |../../index.htm#lansa/change_e.htm]
現在地:
...
7.12.3 CHANGE の使用例
例1:フィールド 例1:フィールド #COUNT の値を 1 ずつ大きくします。 CHANGE FIELD
CHANGE FIELD(#COUNT)
...
TO('
...
#COUNT +
...
1')
...
例2:フィールド 例2:フィールド #QUANTITY をフィールド #COUNT に加算します。 CHANGE FIELD
CHANGE FIELD(#COUNT)
...
TO('
...
#COUNT +
...
#QUANTITY')
...
例3:グループ 例3:グループ #ORDERLINE 内のすべてのフィールドを NULL 値に変更します。"NULL" 値は、英数字フィールドの場合はブランク、数値フィールドの場合は 0 です。
GROUP_
...
BY NAME(#ORDERLINE)
...
FIELDS(#ORDLIN #PRODUCT #QUANTITY #PRICE)
CHANGE FIELD(#ORDERLINE)
...
TO(*NULL)
...
これは以下の例と同じです。 CHANGE FIELD
CHANGE FIELD(#ORDLIN)
...
TO(*NULL)
...
CHANGE FIELD(#PRODUCT)
...
TO(*NULL)
...
CHANGE FIELD(#QUANTITY)
...
TO(*NULL)
...
CHANGE FIELD(#PRICE)
...
TO(*NULL)
...
これは以下の例と同じです。 CHANGE FIELD
CHANGE FIELD(#ORDLIN)
...
TO(*ZERO)
...
CHANGE FIELD(#PRODUCT)
...
TO(*BLANKS)
...
CHANGE FIELD(#QUANTITY)
...
TO(*ZERO)
...
CHANGE FIELD(#PRICE)
...
TO(*ZERO)
...
これは以下の例と同じです。 CHANGE FIELD
CHANGE FIELD(#ORDLIN)
...
TO(0)
...
CHANGE FIELD(#PRODUCT)
...
TO('''
...
''')
...
CHANGE FIELD(#QUANTITY)
...
TO(0)
...
CHANGE FIELD(#PRICE)
...
TO(0)
...
例4:グループ 例4:グループ #ORDERLINE 内のすべてのフィールドを、データ・ディクショナリで定義されているデフォルト値に変更します。
GROUP_
...
BY NAME(#ORDERLINE)
...
FIELDS(#ORDLIN #PRODUCT #QUANTITY #PRICE)
CHANGE FIELD(#ORDERLINE)
...
TO(*DEFAULT)
...
これは以下の例と同じです。 CHANGE FIELD
CHANGE FIELD(#ORDLIN)
...
TO(*DEFAULT)
...
CHANGE FIELD(#PRODUCT)
...
TO(*DEFAULT)
...
CHANGE FIELD(#QUANTITY)
...
TO(*DEFAULT)
...
CHANGE FIELD(#PRICE)
...
TO(*DEFAULT)
例5:フィールド 例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
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:フィールド #PRICE') CHANGE FIELD(#C) TO('#QUANTITY * #PRICE')
例6:フィールド #A、#B、および #C のそれぞれに値 1 が保持されるように変更します。 CHANGE FIELD(#A #B #C) TO
CHANGE FIELD(#A #B #C) TO(1)
...
これは以下の例と同じです。 CHANGE FIELD
CHANGE FIELD(#A)
...
TO(1)
...
CHANGE FIELD(#B)
...
TO(1)
...
CHANGE FIELD(#C)
...
TO(1)
...
例7:フィールド 例7:フィールド #A および #B に '#A + 1' の結果が保持されるように変更します。 CHANGE FIELD(#A #B) TO('#A + 1')
これは以下の例と同じです。
CHANGE FIELD(#A) TO('#A 1') CHANGE FIELD(#B) TO('#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)
[ |../../index.htm#lansa/change_e.htm]
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)