Procédure : vérifier un lot de modèles de formulaire
Dernière modification : mardi 30 mars 2010
S’applique à : SharePoint Server 2010
Pour les besoins de cette tâche, la méthode VerifyFormTemplate de la classe FormTemplateCollection est utilisée pour vérifier un modèle de formulaire répertorié dans une zone de texte. Cette opération revient à utiliser le bouton Vérifier de la page Télécharger un modèle de formulaire du site Administration centrale de SharePoint 2010.
Le formulaire que vous créez pour ce projet contient les contrôles suivants : un contrôle FolderBrowserDialog, un bouton qui ouvre FolderBrowserDialog, une zone de texte qui renferme l’emplacement du dossier contenant les modèles de formulaires à vérifier, un bouton qui exécute la vérification du modèle de formulaire, ainsi qu’une zone de texte enrichi qui affiche le modèle de formulaire vérifié et tout message éventuel du convertisseur.
Notes
Cette rubrique suppose que Visual Studio est installé sur le client Web frontal ou sur un seul serveur de batterie exécutant InfoPath Forms Services.
Pour configurer le projet
Créez un projet Application Windows Forms Visual Basic dans Microsoft Visual Studio.
Dans le menu Projet, cliquez sur Ajouter une référence.
Sous l’onglet .NET de la boîte de dialogue Ajouter une référence, sélectionnez Microsoft SharePoint Foundation, puis cliquez sur OK. (Si Microsoft SharePoint Foundation n’est pas disponible sous l’onglet .NET, sous l’onglet Parcourir, accédez au dossier C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI\, sélectionnez l’assembly Microsoft.SharePoint.dll, puis cliquez sur OK.
Dans le menu Projet, cliquez une nouvelle fois sur Ajouter une référence.
Sous l’onglet Parcourir de la boîte de dialogue Ajouter une référence, accédez au dossier C:\Program Files\Microsoft Office Servers\14.0\Bin\, sélectionnez l’assembly Microsoft.Office.InfoPath.Server.dll, puis cliquez sur OK.
Pour ajouter des contrôles et du code au formulaire
Ajoutez les contrôles suivants au formulaire. Ils apparaissent dans la catégorie Tous les Windows Forms de la boîte à outils Visual Studio :
Deux contrôles Button
Un contrôle TextBox
Un contrôle RichTextBox
Renommez le premier bouton « Choisir un dossier » et le deuxième bouton « Vérifier les modèles de formulaires » en modifiant la propriété Texte de chaque bouton dans la fenêtre Propriétés.
Repositionnez et redimensionnez le formulaire et les contrôles jusqu’à ce que tout le texte apparaisse sur les boutons et que le contrôle RichTextBox occupe la plus grande partie du formulaire.
Dans le menu Affichage, cliquez sur Code.
Collez le code suivant dans la fenêtre de code, en remplaçant tout le code existant.
Cliquez sur Form1.vb [Design] dans le menu Fenêtre.
Dans la fenêtre Propriétés, cliquez sur la zone de liste déroulante, puis sélectionnez Button1.
Dans la fenêtre Propriétés, cliquez sur le bouton Événements, qui est généralement le quatrième bouton en partant de la gauche dans la ligne de boutons située sous la liste déroulante.
Dans le menu Action, cliquez sur le menu déroulant de l’événement Click, puis sélectionnez Button1_Click.
Dans la fenêtre Propriétés, cliquez sur la zone de liste déroulante, puis sélectionnez Button2.
Dans le menu Action, cliquez sur la liste déroulante de l’événement Click, puis sélectionnez Button2_Click.
Dans le menu Fichier, cliquez sur Enregistrer tout.
Appuyez sur F5 pour exécuter l’application.
Exemple
Utilisez la procédure décrite plus haut dans cette rubrique pour créer une application Windows Visual Basic qui utilise l’exemple de code suivant pour vérifier les modèles de formulaires d’un dossier et pour répertorier tout message du convertisseur associé à chaque modèle de formulaire ou tout message indiquant que le modèle de formulaire est prêt à être téléchargé.
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 vous devez traiter tous les modèles de formulaires du dossier principal et de ses sous-dossiers, remplacez le paramètre IO.SearchOption.TopDirectoryOnly par IO.SearchOption.AllDirectories.
Si vous devez télécharger les modèles de formulaires après les avoir vérifiés, utilisez la méthode UploadFormTemplate.
Voir aussi
Tâches
Procédure : vérifier un modèle de formulaire avant son déploiement