例: ランタイムエラー

  1. [Price] フィールドの次の確認式は、[Price] フィールドの内容にエラーがあると、文書の保存操作が失敗し、指定したメッセージを表示します。
    @If(@IsError(Price); @Failure("The Price field must be numeric"); @Success)
  2. 次の例には入力変換式と入力確認式が含まれています。入力変換式は、[Price] フィールドの値が 14.99 より大きい場合、このフィールドにエラーを入れます。入力確認式は、[Price] フィールドの内容にエラーがあると、文書の保存操作を失敗させ、指定したメッセージを表示します。
    REM "Input translation formula for Price field";
    @If(Price > 14.99; @ERROR; Price)
    REM "Input validation formula for Price field";
    @If(@IsError(Price); @Failure("The Price field must be numeric and 14.99 or less"); @Success)
  3. 次のボタン式は、値引きを適用する前に、[Price] フィールドにエラーがないかどうかを調べます。エラーがある場合は、最初に戻ってユーザーにメッセージを表示します。
    FIELD Price := @If(!@IsError(Price) & @IsNumber(Price) & Price < 15; Price * 0.85; @Return(@Prompt([Ok]; "Error in price field"; "Must be numeric and less than 15.00"; "")));
    @All
  4. 次のボタン式は、[Price] フィールドにエラーがないかどうかを調べます。エラーがある場合は、@Prompt によってユーザーから取得した値に設定し直します。
    FIELD Price := @If(!@IsError(Price) & @IsNumber(Price) & Price < 15; Price; @TextToNumber(@Prompt([OkCancelEdit]; "Error in price field"; "Enter a number under $15.00"; "")));
    @All
  5. 次のエージェント式は、@DbLookup ステートメントの戻り値にエラーがないかどうかを調べます。エラーがある場合は、「Not available.」という文字列を表示します。
    result := @DbLookup("";"Snapper":"names.nsf";"People";
    @Right(Name;" ") + " , " + @Left(Name; " "); "OfficePhoneNumber");
    FIELD Phone := @If(@IsError(result);"Not available";result)