Procédure : vérifier un lot de modèles de formulaire
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 3.0.
Le formulaire contient les éléments suivants : un contrôle FolderBrowserDialog, un bouton qui ouvre la boîte de dialogue FolderBrowserDialog, une zone de texte qui renferme l'emplacement du dossier contenant les modèles de formulaire à vérifier, un bouton qui exécute la vérification du modèle de formulaire et 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 Microsoft Visual Studio 2005 est installé sur le client Web (WFE) ou sur un seul serveur de batterie exécutant InfoPath Forms Services.
Configuration du projet
Créez un nouveau projet Application WindowsVisual Basic dans Microsoft Visual Studio 2005.
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 Windows® SharePoint® Services et 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, recherchez l'assembly
Microsoft.Office.InfoPath.Server.dll
, généralement situé dans C:\Program Files\Microsoft Office Servers\12.0\Bin\. Sélectionnez l'assembly et cliquez sur OK.
Ajout de contrôles et de 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 formulaire » 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 ci-dessous 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 et 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 zone de liste déroulante.
Dans le menu Action, cliquez sur le menu déroulant de l'événement Click et sélectionnez Button1_Click.
Dans la fenêtre Propriétés, cliquez sur la zone de liste déroulante et sélectionnez Button2.
Dans le menu Action, cliquez sur la flèche déroulante de l'événement Click et 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 ci-dessus pour créer une nouvelle application Windows Visual Basic qui utilise cet exemple de code pour vérifier les modèles de formulaire 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 formulaire 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 formulaire après les avoir vérifiés, utilisez la méthode UploadFormTemplate.
Voir aussi
Autres ressources
Procédure : vérifier un modèle de formulaire avant son déploiement
Développement d'applications Windows pour réaliser les tâches d'administration d'InfoPath Forms Services