ユーザーが入力したフィールド値の確認

Validation フックを使用して、ユーザーがフィールドに入力した情報が 有効かどうかを確認できます。情報が無効な場合は、 有効な情報の入力を求めるプロンプトが出されます。
フィールドまたはアクションに 新しい BASIC フックまたは PERL フックを定義すると、そのフックの呼び出し構文が スクリプト エディタ ウィンドウに追加されます。呼び出し構文は 編集できません。

フックはフィールドの動作に影響することがあるため、 フックは慎重に設計、テストしてからユーザーに提供してください。 たとえば、このユーザー入力フックの例では、動作グリッドの設定に関係なく、ユーザー入力フックによって user_number field が必須フィールドとして設定されます。

  1. ワークスペースで、[レコード タイプ] を展開し、 次に、[フィールド] をダブルクリックします。
  2. フィールド グリッドで、修正するフィールドの [確認] セルを クリックします。下矢印をクリックして使用可能なフックの リストを表示します。[SCRIPTS] > [BASIC] または [SCRIPTS] > [PERL] とクリックします。 [インスタント編集モード] が有効な場合は、Designer によって スクリプト エディタが開始されます。[インスタント編集モード] が無効な場合は、 フィールドの [確認] セルをダブルクリックしてスクリプト エディタを開始します。

    BASIC と Perl には、それぞれ専用のスクリプト エディタがあります。Designer では、Designer ウィンドウの タイトル バーにエディタのタイプが表示されます。正しいエディタを使用していることを確認してから、 コードを編集してください。

  3. ユーザー入力を確認するコードを、次に示す行の後に入力します (Perl の場合、行は # で始まります)。
    REM Return a non-empty string explaining why the
    REM field's current value is not permitted.
    REM Or, if it is valid, return an empty string value.
    REM Example: 
    REM Dim value_info
    REM Set value_info = GetFieldValue(fieldname)
    REM If Len(value_info.GetValue()) < 10 Then
    REM resolution_date_Validation = "Must be at least 10 chars long"
    REM End If
    たとえば、フィールド名が「user_number」、データ型が INT の場合、 次のコードにより、1 ~ 100 の値だけをユーザーが入力できるようにします。
    REM Return a non-empty string explaining why the field's current 
    value is not permitted
    REM Or, if it is valid, return an empty string value.
    
    value = GetFieldValue(fieldname).Get Value()
    if Not IsNumeric(value)
      user_number_Validation="フィールドに番号が入力されていません。"
    Else If (value < 1) or (value > 100) then
      user_number_Validation="ユーザー番号は、1 ~ 100 の間の値でなければなりません。"
    end if
  4. [フック] > [コンパイル] とクリックします。スクリプトがコンパイルされ、構文エラーがあると表示されます。
  5. エラーを修正して、[フック] > [コンパイル] とクリックするか、スクリプト エディタを閉じます。

フィードバック