Partager via


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

  1. Créez un nouveau projet Application WindowsVisual Basic dans Microsoft Visual Studio 2005.

  2. Dans le menu Projet, cliquez sur Ajouter une référence.

  3. Sous l'onglet .NET de la boîte de dialogue Ajouter une référence, sélectionnez Windows® SharePoint® Services et cliquez sur OK.

  4. Dans le menu Projet, cliquez une nouvelle fois sur Ajouter une référence.

  5. 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

  1. 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

  2. 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.

  3. 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.

  4. Dans le menu Affichage, cliquez sur Code.

  5. Collez le code ci-dessous dans la fenêtre de code, en remplaçant tout le code existant.

  6. Cliquez sur Form1.vb [Design] dans le menu Fenêtre.

  7. Dans la fenêtre Propriétés, cliquez sur la zone de liste déroulante et sélectionnez Button1.

  8. 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.

  9. Dans le menu Action, cliquez sur le menu déroulant de l'événement Click et sélectionnez Button1_Click.

  10. Dans la fenêtre Propriétés, cliquez sur la zone de liste déroulante et sélectionnez Button2.

  11. Dans le menu Action, cliquez sur la flèche déroulante de l'événement Click et sélectionnez Button2_Click.

  12. Dans le menu Fichier, cliquez sur Enregistrer tout.

  13. 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