Compartir a través de


XmlValidatingEventArgs.ReportError (Método) (XPathNavigator, Boolean, String)

Crea un objeto FormError con información de error personalizada con los valores especificados y la agrega al objeto FormErrorCollection del formulario.

Espacio de nombres: Microsoft.Office.InfoPath
Ensamblado: Microsoft.Office.InfoPath (en microsoft.office.infopath.dll)

Sintaxis

'Declaración
Public MustOverride Sub ReportError ( _
    node As XPathNavigator, _
    siteIndependent As Boolean, _
    message As String _
)
'Uso
Dim instance As XmlValidatingEventArgs
Dim node As XPathNavigator
Dim siteIndependent As Boolean
Dim message As String

instance.ReportError(node, siteIndependent, message)
public abstract void ReportError (
    XPathNavigator node,
    bool siteIndependent,
    string message
)

Parámetros

  • node
    Objeto XPathNavigator situado en el nodo que contiene los datos a los que está asociado el error.
  • siteIndependent
    Establece la condición para la eliminación automática del objeto FormError. Si es true, el objeto FormError se eliminará para los cambios realizados en cualquier nodo que coincidan con la expresión XPath devuelta por la propiedad Match de este objeto de evento. Si es false, el objeto FormError se elimina la próxima vez que se valida el formulario únicamente cuando el nodo devuelto por la propiedad Site de este objeto de evento se ha modificado.
  • message
    Texto utilizado para el mensaje de error breve.

Excepciones

Tipo de excepción Condición

ArgumentException

Los parámetros que se han pasado a este método no son válidos.

ArgumentNullException

Los parámetros que se han pasado a este método son null.

Comentarios

El método ReportError se usa para crear un error personalizado para un error que se produjo durante el evento Validating.

Cuando se llama al método ReportError, InfoPath crea un objeto FormError y lo añade a la colección FormErrorCollection del formulario actual. Los objetos FormError se quitan de la colección cuando la limitación de validación deja de ser no válida. En determinados casos, se pueden quitar explícitamente mediante los métodos Delete o DeleteAll.

También se pueden crear objetos FormError con el método Add de la clase FormErrorCollection.

Nota

Si se desea que los errores se apliquen a todos los nodos del mismo tipo, se debe utilizar errores independientes del sitio. Si se desea que el error se aplique a un nodo concreto, se debe usar errores dependientes del sitio.

Sólo pueden tener acceso a este miembro los formularios que se ejecuten en el mismo dominio que el formulario abierto actualmente o los formularios a los que se hayan concedido permisos entre dominios.

Se puede tener acceso a este tipo o miembro desde un código ejecutado en formularios abiertos en Microsoft Office InfoPath 2007 o en un explorador Web.

Ejemplo

En el ejemplo siguiente, se utiliza la propiedad Site que la clase XmlValidatingEventArgs hereda de la clase XmlEventArgs para comprobar el valor del nodo que ha provocado el evento Validating. Si la validación de datos no se realiza con éxito, se utilizará el método ReportError para crear un error personalizado.

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,
            "Quantity cannot exceed 50.");
      }

      if (fieldValue < 0)
      {
         e.ReportError(e.Site,
            false,
            "Quantity cannot be less than 0.");
      }
   }
}
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,
            "Quantity cannot exceed 50.")
      End If

      If (fieldValue < 0) Then
         e.ReportError(e.Site,
            false,
            "Quantity cannot be less than 0.")
      End If
   End If
End Sub

Vea también

Referencia

XmlValidatingEventArgs (Clase)
XmlValidatingEventArgs (Miembros)
Microsoft.Office.InfoPath (Espacio de nombres)