Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

[ Image Removed |../../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)  
[ Image Removed |../../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)