次の方法で共有


XmlValidatingEventArgs.ReportError メソッド (XPathNavigator, Boolean, String, String, Int32, ErrorMode)

指定した値を持つカスタム エラー情報の入った FormError オブジェクトを作成し、それをフォームの FormErrorCollection オブジェクトに追加します。

名前空間: Microsoft.Office.InfoPath
アセンブリ: Microsoft.Office.InfoPath (microsoft.office.infopath.dll 内)

構文

'宣言
Public MustOverride Sub ReportError ( _
    node As XPathNavigator, _
    siteIndependent As Boolean, _
    message As String, _
    messageDetails As String, _
    errorCode As Integer, _
    errorMode As ErrorMode _
)
'使用
Dim instance As XmlValidatingEventArgs
Dim node As XPathNavigator
Dim siteIndependent As Boolean
Dim message As String
Dim messageDetails As String
Dim errorCode As Integer
Dim errorMode As ErrorMode

instance.ReportError(node, siteIndependent, message, messageDetails, errorCode, errorMode)
public abstract void ReportError (
    XPathNavigator node,
    bool siteIndependent,
    string message,
    string messageDetails,
    int errorCode,
    ErrorMode errorMode
)

パラメータ

  • node
    エラーが関連付けられているデータを含むノードに配置された XPathNavigator
  • siteIndependent
    FormError オブジェクトの自動削除の条件を設定します。true に設定すると、このイベント オブジェクトの Match プロパティによって返された XPath 式と一致する任意のノードへの変更のための FormError オブジェクトが削除されます。false に設定すると、FormError オブジェクトは、次回フォームが検証されて、このイベント オブジェクトの Site プロパティにより返されたノードに変更が加えられた場合にのみ削除されます。
  • message
    短いエラー メッセージに使用されるテキスト。
  • messageDetails
    詳細なエラー メッセージに使用されるテキスト。
  • errorCode
    エラー コードとして使用される数字。
  • errorMode
    エラーをモーダル ダイアログ ボックスに表示するのか、それとも影響されるコントロール内に波線の下線を付けてモードレスで表示するのかを指定する ErrorMode

例外処理

例外の種類 条件

ArgumentException

このメソッドに渡されたパラメータは有効ではありません。

ArgumentNullException

このメソッドに渡されたパラメータは null です。

コメント

ReportError メソッドを使用すると、Validating イベント中に発生するエラーのためのカスタム エラーを作成できます。

ReportError メソッドが呼び出されると、InfoPath により FormError オブジェクトが作成され、それが現在のフォームの FormErrorCollection に追加されます。FormError オブジェクトは、その検証制約が有効ではなくなったときにコレクションから削除されます。特定のケースで、Delete メソッドまたは DeleteAll メソッドを使用して明示的に削除することもできます。

FormError オブジェクトは、FormErrorCollection クラスの Add メソッドを使用して作成することもできます。

メモメモ :

同じ種類のすべてのノードに対してエラーを適用する場合は、サイトに依存しないエラーを使用する必要があります。特定のノードに対してのみエラーを適用する場合は、サイトに依存するエラーを使用します。

このメンバは、現在開いているフォームと同じドメイン内で実行されているフォーム、またはドメインを越えたアクセス許可を付与されているフォームだけがアクセスできます。

この型またはメンバは、Microsoft Office InfoPath 2007 で開いているフォームで実行されているコードからのみアクセスできます。

次の例では、XmlValidatingEventArgs クラスが XmlEventArgs クラスから継承した Site プロパティを使用して、Validating イベントを発生させたノードの値をチェックしています。データ検証に失敗した場合は、ReportError メソッドを使用してカスタム エラーを作成します。

public void field1_Validating(object sender, XmlValidatingEventArgs e)
{
   if (e.Site.InnerXml != String.Empty)
   {
      int fieldValue = int.Parse((e.Site.InnerXml));

      if (fieldValue > 50)
      {
         e.ReportError(e.Site,
            false,
            "Invalid quantity",
            "The total number cannot exceed 50.",
            12345,
            ErrorMode.Modeless);
      }

      if (fieldValue < 0)
      {
         e.ReportError(e.Site,
            false,
            "Invalid quantity",
            "The total number cannot be less than 0.",
            12346,
            ErrorMode.Modeless);
      }
   }
}
Public Sub field1_Validating(ByVal sender As Object , _
   ByVal e As XmlValidatingEventArgs)
   If (e.Site.InnerXml <> String.Empty) Then
      Integer fieldValue = Integer.Parse((e.Site.InnerXml))

      If (fieldValue > 50) Then
         e.ReportError(e.Site,
            false,
            "Invalid quantity",
            "The total number cannot exceed 50.",
            12345,
            ErrorMode.Modeless)
      End If

      If (fieldValue < 0) Then
         e.ReportError(e.Site,
            false,
            "Invalid quantity",
            "The total number cannot be less than 0.",
            12346,
            ErrorMode.Modeless)
      End If
   End If
End Sub

関連項目

参照

XmlValidatingEventArgs クラス
XmlValidatingEventArgs のメンバ
Microsoft.Office.InfoPath 名前空間