Tutorial: Crear y depurar una plantilla de formulario básica mediante el modelo de objetos de InfoPath 2003

En este tema se ofrece un tutorial que enseña a crear una plantilla de formulario básica con código administrado de InfoPath, que funciona con el modelo de objetos compatible con InfoPath 2003 suministrado por los miembros del espacio de nombres Microsoft.Office.Interop.InfoPath.SemiTrust.

Hola a todos

En el ejemplo siguiente, aprenderá cómo mostrar un sencillo cuadro de diálogo de alerta mediante el método Alert del modelo de objetos de InfoPath 2003.

Crear una plantilla de formulario de InfoPath que funciona con el modelo de objetos compatible con InfoPath 2003

  1. Crear una plantilla de formulario de InfoPath que funciona con el modelo de objetos compatible con InfoPath 2003, como se describe en Cómo: Crear una plantilla de formulario con código administrado mediante el modelo de objetos de InfoPath 2003.

  2. Asigne al proyecto de plantilla de formulario el nombre HelloWorld y guárdelo.

    El sistema de proyectos crea el código y los archivos del proyecto y, a continuación, abre una plantilla de formulario en blanco en el modo de diseño de InfoPath. Ya está listo para añadir controladores de eventos.

Añada un controlador de eventos OnClick

  1. Haga clic en Controles, en el panel de tareas Tareas de diseño.

  2. Si está trabajando en InfoPath con Microsoft Visual Studio Tools para aplicaciones (VSTA), en la sección de controles Estándar, haga clic en el control Botón para insertarlo en la vista.

    Si está trabajando en Visual Studio 2005 con Microsoft Visual Studio 2005 Tools para 2007 Microsoft Office System o Visual Studio 2008 con Visual Studio Tools para Office, arrastre el control Botón desde el Cuadro de herramientas hasta el diseñador de formularios manifest.xsf [Design].

  3. Haga doble clic en el botón para abrir el cuadro de diálogo Propiedades del botón.

  4. Cambie la etiqueta a Alerta.

  5. Cambie el Id. a IdAlerta.

  6. Haga clic en Editar código del formulario.

    Se crea un esqueleto de controlador de eventos para el evento OnClick y el foco se desplaza al editor de código en VSTA o Visual Studio. Para obtener más información sobre cómo trabajar con controladores de eventos, consulte Cómo: Agregar un controlador de eventos mediante el modelo de objetos de InfoPath 2003.

    Ya está todo preparado para agregar el código de formulario al controlador de eventos del botón.

Agregar código de formulario al controlador de eventos

  1. En el controlador de eventos OnClick, escriba el código siguiente:

    thisXDocument.UI.Alert("Hello World!");
    
    thisXDocument.UI.Alert("Hello World!")
    

    Observe que aparece una lista desplegable de Microsoft IntelliSense cada vez que se escribe un punto en la línea de código. La función completa del controlador de eventos debe tener el siguiente aspecto:

    [InfoPathEventHandler(MatchPath="AlertID", EventType=InfoPathEventType.OnClick)]
    public void AlertID_OnClick(DocActionEvent e)
    {
        thisXDocument.UI.Alert("Hello World!");
    }
    
    <InfoPathEventHandler(MatchPath:="AlertID", EventType:=InfoPathEventType.OnClick)>
    Public Sub AlertID_OnClick(ByVal e As DocActionEvent)
        thisXDocument.UI.Alert("Hello World!")
    End Sub
    

    Nota

    Como alternativa al método Alert, puede utilizar el método MessageBox.Show del espacio de nombres System.Windows.Forms para mostrar un cuadro de mensajes. Para ello, agregue una referencia al ensamblado System.Windows.Forms, agregue using System.Windows.Forms; o Imports System.Windows.Forms a las directivas al principio del archivo de código y, a continuación, escriba una línea de código como la siguiente: MessageBox.Show("Hello World!); or MessageBox.Show("Hello World!)

  2. Si está trabajando con InfoPath y VSTA, cambie a la ventana de modo de diseño de InfoPath y haga clic en el botón Vista previa de la barra de herramientas Estándar.

    Si está trabajando en Visual Studio, en el menú Depurar, haga clic en Iniciar depuración (o presione F5).

  3. En la ventana Vista previa, haga clic en el botón Aviso.

    Aparecerá un cuadro de mensaje con el texto "Hola a todos".

    El procedimiento siguiente muestra cómo agregar puntos de interrupción para depurar el código del formulario.

Depurar el código del formulario

  1. En el editor de código, haga clic en la barra gris que se encuentra a la izquierda de esta línea:

    thisXDocument.UI.Alert("Hello World!");
    
    thisXDocument.UI.Alert("Hello World!")
    

    Aparecerá un círculo rojo y la línea de código se resaltará para indicar que se hará una pausa en el tiempo de ejecución al llegar a este punto de interrupción en el código del formulario.

  2. En el menú Depurar, haga clic en Iniciar depuración (o presione F5).

  3. En la ventana Vista previa de InfoPath, haga clic en el botón Aviso.

    El foco se desplazará al editor de código y se resaltará la línea en la que se encuentra el punto de interrupción.

  4. En el menú Depurar, haga clic en Paso a paso por procedimientos (o presione F10) para continuar depurando el código paso a paso.

    El código del método Alert se ejecuta y aparece el aviso "Hola a todos" en la ventana Vista previa de InfoPath.

Obtener el nombre del usuario actual

Puede utilizar las clases de .NET Framework para obtener acceso a funciones de las que no se puede disponer con facilidad en las secuencias de comandos. En este ejemplo, aprenderá cómo utilizar las clases de .NET Framework para recuperar el nombre del usuario actual.

Agregar un controlador de eventos OnLoad

  1. Abra el proyecto HelloWorld de InfoPath que acaba de crear.

  2. En el menú Ver, haga clic en Origen de datos.

  3. Haga clic con el botón secundario en el nodo myCampos y, a continuación, haga clic en Agregar.

  4. En Nombre, escriba empleado y haga clic en Aceptar.

  5. Arrastre el nodo empleado hasta la vista.

  6. Si está trabajando en InfoPath con VSTA, en el menú Herramientas, haga clic en Programación y, a continuación, haga clic en Evento OnLoad.

    Si está trabajando en Visual Studio, en el menú Insertar, haga clic en Evento y, a continuación, haga clic en Evento OnLoad.

    Se creará un controlador de eventos para el evento OnLoad y se desplazará el foco al editor de código. Se puede llamar al código de este controlador de eventos cada vez que se cargue el formulario. El procedimiento siguiente muestra cómo agregar código de formulario que recupere el nombre del usuario para el controlador de eventos.

Agregar código de formulario

  1. En el controlador de eventos OnLoad, escriba el código siguiente:

    // Store an XML DOM node as a local variable.
    IXMLDOMNode nodeEmployee = thisXDocument.DOM.selectSingleNode("my:myFields/my:employee");
    if(nodeEmployee != null)
    {
        if(nodeEmployee.text == "")
        {
        // If the employee name is blank when the form is loaded, 
        // populate the employee node with the current user name.
        nodeEmployee.text = System.Environment.UserName;
        }
    }
    
    // Store an XML DOM node as a local variable.
    Dim nodeEmployee As IXMLDOMNode
    nodeEmployee = thisXDocument.DOM.selectSingleNode("my:myFields/my:employee");
    If Not(nodeEmployee Is Nothing) Then
        If(nodeEmployee.text = "") Then
        // If the employee name is blank when the form is loaded, 
        // populate the employee node with the current user name.
        nodeEmployee.text = System.Environment.UserName
        End If
    End If
    
  2. Compile el formulario y obtenga una vista previa del mismo.

    El nombre de usuario debería aparecer ahora en el cuadro de texto Empleado.

Para obtener información sobre cómo implementar plantillas de formulario con código administrado, vea Cómo: Implementar proyectos de InfoPath. Para obtener información acerca del modelo de objetos de InfoPath y las tareas de programación más comunes en las plantillas de formulario con código administrado que funcionan con el modelo de objetos compatible con InfoPath 2003, vea Comprender el modelo de objetos de InfoPath 2003.

Vea también

Tareas

Cómo: Agregar un controlador de eventos mediante el modelo de objetos de InfoPath 2003

Conceptos

Utilizar código de limpieza e inicialización mediante el modelo de objetos de InfoPath 2003
Modelos de objetos compatibles con InfoPath 2003