You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Current »

[ |../../index.htm#lansa/set_error_e.htm]
現在地:

7.112.2 SET_ERROR の使用例

例1:以下の2つの妥当性検査ブロックは、機能的にまったく同じです。
最初の例では、「標準」の妥当性検査ブロックを使用しています。
BEGINCHECK   CONDCHECK FIELD(#QUANTITY) COND('(#QUANTITY >= 0) AND (#QUANTITY <= (#MEASURE * 1.462))') MSGTXT('Quantity exceeds top measurement factor or is negative')   ENDCHECK  
2番目の例では、SET_ERRORコマンドを使用しています。結果は、上記の例とまったく同じです。
BEGINCHECK   IF          COND('(#QUANTITY < 0) OR (#QUANTITY > (#MEASURE * 1.462))') SET_ERROR FOR_FIELD(#QUANTITY) MSGTXT('Quantity exceeds top measurement factor or is negative') ENDIF   ENDCHECK  
例2:以下の2つの妥当性検査ブロックも、機能的にまったく同じです。
BEGINCHECK   FILECHECK  FIELD(#PRODNO) USING_FILE(PRODUCT) MSGTXT('Product number not found in product master')   RANGECHECK FIELD(#ORDNUM) RANGE(A000000 Z999999) MSGTXT('Order number is not in range A000000 to Z999999')   RANGECHECK FIELD(#QUANTITY) RANGE(1 9999) MSGTXT('Quantity ordered must be in range 1 - 9999')   ENDCHECK  
および
BEGINCHECK   CHECK_FOR  IN_FILE(PRODUCT) WITH_KEY(#PRODNO) IF_STATUS  IS_NOT(*EQUALKEY) SET_ERROR  FOR_FIELD(#PRODNO) MSGTXT('Product number not found in product master') ENDIF   IF         '(#ORDNUM < A000000) OR (#ORDNUM > Z999999)' SET_ERROR  FOR_FIELD(#ORDNUM) MSGTXT('Order number is not in range A000000  Z999999') ENDIF   IF         '(#QUANTITY < 1) OR (#QUANTITY > 9999)' SET_ERROR  FOR_FIELD(#QUANTITY) MSGTXT('Quantity ordered must be in range 1  9999') ENDIF   ENDCHECK  
[ |../../index.htm#lansa/set_error_e.htm]

  • No labels