Compartir a través de


Procedimiento para comprobar un lote de plantillas de formulario

Última modificación: martes, 30 de marzo de 2010

Hace referencia a: SharePoint Server 2010

En esta tarea, se usa el método VerifyFormTemplate de la clase FormTemplateCollection para comprobar una plantilla de formulario que aparece en un cuadro de texto. Se realiza el mismo proceso que al usar el botón Comprobar en la página Cargar plantilla de formulario del sitio de Administración central de SharePoint 2010.

El formulario creado para este proyecto contiene los siguientes controles: un control FolderBrowserDialog; un botón que abre FolderBrowserDialog; un cuadro de texto que contiene la ubicación de la carpeta que contiene las plantillas de formulario que se deben comprobar; un botón que ejecuta la comprobación de las plantillas de formulario, y un cuadro de texto enriquecido para mostrar la plantilla de formulario comprobada y los mensajes del convertidor.

Nota

En este tema se supone que Microsoft Visual Studio está instalado en el servidor front-end web (WFE) o en el servidor de conjun to o granja de servidores único que ejecuta InfoPath Forms Services.

Para configurar el proyecto

  1. Cree un nuevo proyecto de Aplicación de Windows Forms de Visual Basic en Microsoft Visual Studio.

  2. En el menú Proyecto, haga clic en Agregar referencia.

  3. En la ficha .NET del cuadro de diálogo Agregar referencia, seleccione Microsoft SharePoint Foundation y, a continuación, haga clic en Aceptar. (Si Microsoft SharePoint Foundation no está disponible en la ficha .NET, en la ficha Examinar, vaya a C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI\, seleccione el ensamblado Microsoft.SharePoint.dll y, a continuación y, a continuación, haga clic en Aceptar).

  4. En el menú Proyecto, vuelva a hacer clic en Agregar referencia.

  5. En la ficha Examinar del cuadro de diálogo Agregar referencia, desplácese hasta C:\Program Files\Microsoft Office Servers\14.0\Bin\, seleccione el ensamblado Microsoft.Office.InfoPath.Server.dll y haga clic en Aceptar.

Para agregar controles y código al formulario

  1. Agregue los controles siguientes al formulario. Dichos controles se encuentran en la categoría Todos los formularios Windows Forms de la Caja de herramientas de Visual Studio:

    • Dos controles Button

    • Un control TextBox

    • Un control RichTextBox

  2. Cambie el nombre del primer botón a "Elegir una carpeta" y el del segundo botón a "Comprobar plantillas de formulario"; para ello, modifique la propiedad Texto de cada uno de los botones en Ventana Propiedades.

  3. Cambie la posición y el tamaño del formulario y los controles hasta que todo el texto se pueda ver en los botones y el control RichTextBox llene la mayor parte del formulario.

  4. En el menú Ver, haga clic en Código.

  5. Pegue el siguiente código en la ventana de código, en sustitución de todo el código existente.

  6. Haga clic en Form1.vb [Diseño] en el menú Ventana.

  7. En la ventana Propiedades, haga clic en la lista desplegable y, a continuación, seleccione Button1.

  8. En la ventana Propiedades, haga clic en el botón Eventos, que normalmente es el cuarto botón desde la izquierda en la fila de botones situada debajo de la lista desplegable.

  9. En la sección Acción, haga clic en la lista desplegable del evento Click y, a continuación, seleccione Button1_Click.

  10. En la ventana Propiedades, haga clic en la lista desplegable y, a continuación, seleccione Button2.

  11. En la sección Acción, haga clic en la lista desplegable del evento Click y, a continuación, seleccione Button2_Click.

  12. En el menú Archivo, haga clic en Guardar todo.

  13. Presione F5 para ejecutar la aplicación.

Ejemplo

Use los procedimientos anteriores en este tema para crear una nueva aplicación para Windows de Visual Basic que use el siguiente ejemplo de código para comprobar las plantillas de formulario de una carpeta y para mostrar una lista de los mensajes del convertidor asociados con cada plantilla de formulario o de los mensajes que indican que la plantilla de formulario está lista para cargarse.

Imports Microsoft.SharePoint.Administration
Imports Microsoft.Office.InfoPath.Server.Administration

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Show the folder browser dialog
        If FolderBrowserDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
            TextBox1.Text = FolderBrowserDialog1.SelectedPath
        End If
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim Directory As New IO.DirectoryInfo(TextBox1.Text)
        Dim AllFiles As IO.FileInfo() = Directory.GetFiles("*.xsn", IO.SearchOption.TopDirectoryOnly)
        Dim MyFile As IO.FileInfo
        Dim StrLog As String = ""
        Dim LocalFormsService As FormsService
        Dim LocalFarm As SPFarm
        Dim VerifyMessages As New ConverterMessageCollection
        Dim ConverterMsg As ConverterMessage
        Dim IntFileCount As Int16 = 0

        Try
            'Loop through each file
            For Each MyFile In AllFiles
                'Write the filename and path to the string
                StrLog = StrLog + MyFile.FullName.ToString() + Environment.NewLine
                LocalFarm = SPFarm.Local
                LocalFormsService = LocalFarm.Services.GetValue(Of FormsService)(FormsService.ServiceName)
                'Verify the form template
                VerifyMessages = FormTemplateCollection.VerifyFormTemplate(MyFile.FullName.ToString())
                'If there are no messages, display a message that the form template
                'is OK, otherwise loop through the messages and build the string
                If VerifyMessages.Count = 0 Then
                    StrLog = StrLog + "  There are no problems with this form template." + Environment.NewLine
                Else
                    For Each ConverterMsg In VerifyMessages
                        StrLog = StrLog + "  " + ConverterMsg.ShortMessage.ToString() + _
                        ": " + ConverterMsg.DetailedMessage.ToString() + Environment.NewLine
                    Next
                End If
                'Write the string to the rich text box
                RichTextBox1.Text = RichTextBox1.Text + StrLog
                RichTextBox1.Refresh()
                'Reset the string, adding a blank line between files
                StrLog = Environment.NewLine
                'Increment the file count
                IntFileCount = IntFileCount + 1
            Next
            'Show message that the files are done
            MessageBox.Show(IntFileCount.ToString() + " file(s) verified")
        Catch ex As Exception
            MessageBox.Show("An error occurred: " + ex.Message)
        End Try
    End Sub
End Class

Si tiene que procesar cada una de las plantillas de formulario de la carpeta principal y cualquier subcarpeta, cambie el parámetro IO.SearchOption.TopDirectoryOnly a IO.SearchOption.AllDirectories.

Si tiene que cargar plantillas de formulario después de comprobarlas, use el método UploadFormTemplate.

Vea también

Tareas

Procedimiento para comprobar una plantilla de formulario antes de su implementación

Otros recursos

Desarrollo de aplicaciones de Windows para realizar tareas de administración de servicios de InfoPath Forms Services