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
Cree un nuevo proyecto de Aplicación de Windows Forms de Visual Basic en Microsoft Visual Studio.
En el menú Proyecto, haga clic en Agregar referencia.
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).
En el menú Proyecto, vuelva a hacer clic en Agregar referencia.
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
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
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.
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.
En el menú Ver, haga clic en Código.
Pegue el siguiente código en la ventana de código, en sustitución de todo el código existente.
Haga clic en Form1.vb [Diseño] en el menú Ventana.
En la ventana Propiedades, haga clic en la lista desplegable y, a continuación, seleccione Button1.
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.
En la sección Acción, haga clic en la lista desplegable del evento Click y, a continuación, seleccione Button1_Click.
En la ventana Propiedades, haga clic en la lista desplegable y, a continuación, seleccione Button2.
En la sección Acción, haga clic en la lista desplegable del evento Click y, a continuación, seleccione Button2_Click.
En el menú Archivo, haga clic en Guardar todo.
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