[INP2003] [HowTo] データの入力規則のカスタム エラー メッセージで、検証するコントロールの名前を表示する方法

概要

Microsoft Office InfoPath 2003 では、フォームに入力したデータが自動的に確認されます。データの値が、データの入力規則に指定した条件を満たさない場合は、エラー メッセージが表示されます。エラー メッセージは、以下のいずれかの方法で表示できます。
  • ダイアログ ボックス警告。この形式のデータの入力規則では、コントロールに無効なデータが入力されたときに、ダイアログ ボックスを開いてカスタム エラー メッセージを表示します。
  • インライン警告。この形式のデータの入力規則では、コントロールが無効なデータを保持するときに、そのコントロールに赤い破線の境界で印が付けられます。


    そのコントロールを右クリックするか、そのコントロール上にマウス ポインタを移動して画面ヒントを確認すると、インライン エラー メッセージからエラー メッセージを表示できます。
この資料では、ユーザー インターフェイスまたはスクリプトからインライン エラー メッセージを作成する方法を説明します。作成するインライン エラー メッセージでは、入力規則エラーがあったコントロールの名前がカスタム エラー メッセージに表示されます。


先頭に戻る

フォームをデザインする

  1. InfoPath を起動します。
  2. [ファイル] メニューの [フォームのデザイン] をクリックします。[フォームのデザイン] 作業ウィンドウで [新しい空白のフォーム] をクリックします。
  3. [デザイン タスク] 作業ウィンドウで、[データ ソース] をクリックし、[データ ソース] 作業ウィンドウを開きます。
  4. [データ ソース] 作業ウィンドウで、[マイフィールド] を右クリックし、[追加] をクリックします。[フィールドまたはグループの追加] ダイアログ ボックスで、[名前] ボックスに Age と入力します。[データ型] ボックスの一覧で、[整数 (integer)] をクリックし、[OK] をクリックします。
  5. [Age] フィールドをフォームに移動します。
先頭に戻る

ユーザー インターフェイスを使用してデータの入力規則を追加する

  1. [Age] テキスト ボックス コントロールを右クリックし、[テキスト ボックスのプロパティ] をクリックします。[テキスト ボックスのプロパティ] ダイアログ ボックスで、[データの入力規則] をクリックします。
  2. [データの入力規則 (Age)] ダイアログ ボックスで、[追加] をクリックします。
  3. 条件式のボックスの一覧で、[次の値より小さい] をクリックします。
  4. 条件値のボックスの一覧で、[数値の入力] をクリックし、30 と入力します。
  5. [AND/OR] をクリックします。
  6. 新しく表示されたボックスの一覧で [And] を [Or] に変更します。
  7. 2 番目の条件式のボックスの一覧で、[次の値より大きい] をクリックします。
  8. 2 番目の条件値のボックスの一覧で、[数値の入力] をクリックし、65 と入力します。
  9. [ヒント] ボックスに、Age フィールドの値は 30 より大きく、 65 より小さい値にする必要があります。と入力します。
  10. [OK] を 3 回クリックし、すべてのダイアログ ボックスを閉じます。
先頭に戻る

スクリプトを使用してデータの入力規則を追加する

  1. [Age] テキスト ボックス コントロールを右クリックし、[テキスト ボックスのプロパティ] をクリックします。[テキスト ボックスのプロパティ] ダイアログ ボックスで、[データの入力規則] をクリックします。
  2. [データの入力規則 (Age)] ダイアログ ボックスの、[イベント] ボックスの一覧で [OnValidate] をクリックし、[編集] をクリックします。


    Microsoft Script Editor が起動します。
  3. Age フィールドの OnValidate イベントに以下のコードを追加します。
    function msoxd_my_Age::OnValidate(eventObj)
    {
    // Clear any previous errors for this node.
    XDocument.Errors.Delete(eventObj.Site,"InvalidValue");

    //Set the valAge variable to the value that is entered in the Age field.
    var valAge = parseInt(eventObj.Site.text);

    //If the value that is entered in the Age field is less than 30 or
    //greater than 65, add a passive error to the collection of the error.
    if ((valAge < 30) || (valAge > 65))
    {
    XDocument.Errors.Add(eventObj.Site,"InvalidValue",eventObj.Site.baseName + " フィールドの値は 30 より大きく、 65 より小さい値にする必要があります");

    }
    }
  4. 変更を保存します。Script Editor を終了します。
  5. [OK] をクリックして [データの入力規則 (Age)] ダイアログ ボックスを閉じてから、[OK] をクリックして [テキスト ボックスのプロパティ] ダイアログ ボックスを閉じます。
先頭に戻る

フォームをテストする

  1. ツール バーの [フォームのプレビュー] をクリックします。
  2. [Age] フィールドに 29 と入力し、フィールドの外部をクリックします。


    コントロールが赤い破線の境界線で強調表示されます。これは、値が無効であることを示しています。
  3. マウス ポインタをコントロールの上に移動します。


    画面ヒントにカスタム エラー メッセージが表示されます。そのエラー メッセージには、無効なデータを含むコントロールの名前が含まれています。
先頭に戻る

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 822032 (最終更新日 2003-10-09) を基に作成したものです。


この資料に含まれているサンプル コード/プログラムは英語版を前提に書かれたものをありのままに記述しており、日本語環境での動作は確認されておりません。
プロパティ

文書番号:822032 - 最終更新日: 2003/11/06 - リビジョン: 1

フィードバック