Mostrar alertas y cuadros de diálogo mediante el modelo de objetos de InfoPath 2003

Cuando se escribe código para ampliar la funcionalidad de una plantilla de formulario que utiliza el modelo de objetos de InfoPath 2003, con frecuencia resulta útil proporcionar al usuario información en un cuadro de diálogo. Para mostrar mediante programación un cuadro de diálogo y los elementos relacionados de la interfaz de usuario en InfoPath, se utilizan los métodos de la interfaz UIObject .

Información general sobre la interfaz UIObject

La interfaz UIObject proporciona los siguientes métodos que los programadores de formularios pueden utilizar para mostrar distintos tipos de cuadros de diálogo a los usuarios de InfoPath mientras rellenan un formulario.

Nombre Descripción
Alerta
Muestra un cuadro de mensaje sencillo que contiene una cadena de mensaje especificada. Utilice este método si no necesita obtener información del usuario y sólo desea mostrar un mensaje. El cuadro de diálogo que se muestra se cierra haciendo clic en el botón Aceptar.
Confirmar
Muestra un cuadro de mensaje con botones para obtener información de un usuario. El valor que se devuelve es una de las constantes enumeradas XdConfirmChoice .
SetSaveAsDialogFileName
Establece el nombre de archivo predeterminado de un formulario en el cuadro de diálogo Guardar como.
SetSaveAsDialogLocation
Establece la ubicación inicial desde la que empieza a examinar el cuadro de diálogo Guardar como al abrirlo.
ShowMailItem
Crea un nuevo mensaje de correo electrónico en la aplicación de correo electrónico predeterminada, con el formulario abierto actualmente adjunto al mensaje.
ShowModalDialog
Muestra un cuadro de diálogo modal basado en el archivo .html especificado y en los argumentos posicionales. Este método debe usarse si desea mostrar más de un mensaje simple al usuario y necesita obtener algunos datos del usuario (más allá de la confirmación simple que proporcionan los botones | no | cancelar que muestra el método Confirm ).
ShowSignatureDialog
Muestra el cuadro de diálogo integrado Firmas digitales.

Uso de la interfaz UIObject

Se obtiene acceso a la interfaz UIObject a través de la propiedad ui de la interfaz XDocument , a la que se accede a través de la thisXDocument variable que se inicializa en el _Startup método de la clase de código de formulario. En el siguiente ejemplo, se muestra el uso de los métodos ShowMailItem y Alert de la interfaz UIObject :

thisXDocument.UI.ShowMailItem("someone@example.com","", "", 
   "Updated Form", "Here is the updated form that you requested.");
thisXDocument.UI.Alert("The email message has been created.");
thisXDocument.UI.ShowMailItem("someone@example.com", "", "", _
   "Updated Form", "Here is the updated form that you requested.")
thisXDocument.UI.Alert("The email message has been created.")

Uso del método ShowModalDialog

En el siguiente ejemplo, se muestra cómo utilizar el método ShowModalDialog de la interfaz UIObject para mostrar un cuadro de diálogo personalizado definido en el archivo HTML show.html.

public void CTRL1_5_OnClick(DocActionEvent e)
{
   // Write your code here.
   thisXDocument.UI.ShowModalDialog(
      "show.html",(object)thisXDocument,200,450,50,50);
}
Public Sub CTRL1_5_OnClick(ByVal e As DocActionEvent)
   ' Write your code here.
   thisXDocument.UI.ShowModalDialog( _
      "show.html", _
      DirectCast(thisXDocument, Object), 200, 450, 50, 50)
End Sub

Tanto los ejemplos de C# como los de Visual Basic dependen de un archivo HTML denominado "show.html" que define el cuadro de diálogo que invoca el método ShowModalDialog . Este archivo HTML muestra algunos datos del formulario y un cuadro de texto al usuario para que éste escriba un valor. El valor del cuadro de texto se devuelve al formulario al cerrar el cuadro de diálogo.

<HTML>
   <HEAD>
      <script language="JScript">
function BtnClick()
{
   xdocument = window.dialogArguments;
   myXml = xdocument.DOM.xml
   aForm = oForm.elements;
   aForm.textBox.value = myXml;
}
      </script>
   </HEAD>
   <BODY>
      <H1><FONT face="Arial">This is a modal dialog box</FONT> &nbsp;
      </H1>
      <BUTTON onclick="BtnClick()" id="BUTTON1" type="button">
         Get XML DOM
      </BUTTON>
      <FORM ID="oForm">
         <INPUT Type="text" name="textBox">
      </FORM>
   </BODY>
</HTML>

Importante

[!IMPORTANTE] El método ShowModalDialog requiere plena confianza para su ejecución o vista previa. Para obtener más información, vea Vista previa y Depuración de plantillas de formulario que requieren plena confianza.