Partager via


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

  1. Créez un projet Application Windows Forms Visual Basic dans Microsoft Visual Studio.

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

  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, 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

  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 formulaires » 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 suivant 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, puis 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 liste déroulante.

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

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

  11. Dans le menu Action, cliquez sur la liste déroulante de l’événement Click, puis 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 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

Autres ressources

Développement d’applications Windows pour effectuer des tâches d’administration InfoPath Forms Services