FormEvents.Merge, événement
Se produit lors de l'appel de la commande Fusionner les formulaires dans l'interface utilisateur ou du démarrage d'InfoPath avec le commutateur de ligne de commande /aggregate.
Espace de noms : Microsoft.Office.InfoPath
Assembly : Microsoft.Office.InfoPath (dans microsoft.office.infopath.dll)
Syntaxe
Public Event Merge As MergeEventHandler
Dim instance As FormEvents
Dim handler As MergeEventHandler
AddHandler instance.Merge, handler
public abstract event MergeEventHandler Merge
Exceptions
Type d'exception | Condition |
---|---|
Le développeur a tenté de lier l'événement dans un emplacement autre que la méthode InternalStartup. |
Remarques
Important : |
---|
L'événement Merge n'est pas destiné à être instancié par le développeur dans le code de formulaire. Vous ne devez ajouter des gestionnaires d'événements pour les événements au niveau du formulaire qu'à partir de l'interface utilisateur Microsoft Office InfoPath 2007 en mode Création. Lorsque vous ajoutez un gestionnaire d'événements à votre modèle de formulaire à partir de l'interface utilisateur en mode Création, InfoPath génère du code dans la méthode InternalStartup du fichier de code de votre formulaire à l'aide de la classe EventManager et du membre de la classe FormEvents pour lier l'événement à son gestionnaire d'événements. Pour plus d'informations sur l'ajout de gestionnaires d'événements en mode Création dans InfoPath, consultez Procédure d'ajout d'un gestionnaire d'événements. |
L'événement Merge est lié à l'aide du délégué MergeEventHandler.
L'événement Merge peut être annulé en utilisant la propriété CancelableArgs de la classe MergeEventArgs pour affecter à la propriété Cancel la valeur true.
Si vous annulez l'événement, l'action effectuée dans InfoPath varie selon que vous avez défini ou non les propriétés Message et MessageDetails et en fonction des valeurs définies pour celles-ci, comme l'illustre le tableau suivant.
Paramétrage de Message et MessageDetails |
Boîte de dialogue et texte affichés |
---|---|
Affectez uniquement une chaîne de message à la propriété Message. |
Votre message et « Voulez-vous continuer ? » avec les boutons Oui, Oui pour tout et Annuler. |
Affectez uniquement une chaîne de message à la propriété MessageDetails. |
« Microsoft Office InfoPath a rencontré un problème lors de la fusion du formulaire suivant : nomformulaire.xml. » et votre message détaillé avec les boutons Oui, Oui pour tout et Annuler. |
Affectez une chaîne de message aux propriétés Message et MessageDetails. |
Votre message et le message détaillé avec les boutons Oui, Oui pour tout et Annuler. |
Ne définissez pas les propriétés Message et MessageDetails ou affectez aux deux la valeur null ou une chaîne vide. |
Aucune boîte de dialogue n'est affichée. |
Le tableau suivant répertorie les comportements lorsqu'un utilisateur clique sur les boutons Oui, Oui pour tout et Annuler :
Bouton sélectionné |
Comportement de fusion |
---|---|
Bouton Oui |
L'opération de fusion a lieu et l'utilisateur doit cliquer sur Oui pour chaque formulaire à fusionner. |
Bouton Oui pour tout |
L'opération de fusion a lieu et tous les formulaires sélectionnés sont fusionnés. |
Bouton Annuler |
La fusion de tous les formulaires est annulée. Si l'utilisateur a cliqué sur Oui pour un des formulaires avant de cliquer sur Annuler, la fusion de celui-ci est également annulée. |
L'objet MergeEventArgs est passé en tant que paramètre au gestionnaire de l'événement Merge d'un formulaire. L'objet MergeEventArgs fournit des propriétés qui peuvent être utilisées durant l'événement Merge pour interagir par programme avec le document XML sous-jacent d'un formulaire et déterminer des propriétés de fusion telles que le nombre de fichiers fusionnés. Les propriétés fournies par l'objet MergeEventArgs ne sont disponibles que pendant cet événement.
Au cours d'une opération de fusion unique de formulaires, l'événement Merge se produit (et le code de son gestionnaire d'événements s'exécute) une seule fois pour chaque fichier fusionné.
Important : |
---|
Dans le modèle objet InfoPath 2003, un événement OnAfterImport se produit à la fin de l'opération de fusion. Le modèle objet Microsoft Office InfoPath 2007 propose un événement équivalent. Toutefois, la même fonctionnalité peut être obtenue dans un gestionnaire d'événements pour l'événement Merge en comparant les valeurs propriétés Index et Count de la classe MergeEventArgs pour confirmer la bonne exécution de l'opération de fusion, avant d'effectuer toute opération « après fusion ». |
Ce type ou ce membre est uniquement accessible à partir du code exécuté dans les formulaires ouverts dans Microsoft Office InfoPath 2007.
Exemple
Dans l'exemple suivant, le gestionnaire de l'événement Merge définit des variables pour indiquer le statut de l'opération de fusion, appelle la méthode MergeForm(XPathNavigator) de la classe XmlForm pour effectuer l'opération de fusion et affiche un message au terme de celle-ci.
private bool _merging = false;
public void FormEvents_Merge(object sender, MergeEventArgs e)
{
// Set global property to indicate that forms are being merged.
if (e.Index == 0)
{
_merging = true;
}
// Merge the current form.
MergeForm(e.Xml);
e.CancelableArgs.Cancel = false;
// Check to see if merging is finished.
if ((e.Index + 1) == e.Count)
{
_merging = false;
MessageBox.Show("Your request to merge " + e.Count +
" files is now complete.");
// Perform any "after merge" operations here.
}
}
Private _merging As Boolean = False
Public Sub FormEvents_Merge(ByVal sender As Object, _
ByVal e As MergeEventArgs)
' Set global property to indicate that forms are being merged.
If (e.Index = 0) Then
_merging = True
End If
' Merge the current form.
MergeForm(e.Xml)
e.CancelableArgs.Cancel = False
' Check to see if merging is finished.
If ((e.Index + 1) = e.Count) Then
_merging = False
MessageBox.Show("Your request to merge " + e.Count +
" files is now complete.")
' Perform any "after merge" operations here.
End If
End Sub
Voir aussi
Référence
FormEvents, classe
Membres FormEvents
Microsoft.Office.InfoPath, espace de noms