Partager via


FormEvents.Merge Événement

Définition

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.

public:
 abstract event Microsoft::Office::InfoPath::MergeEventHandler ^ Merge;
public abstract event Microsoft.Office.InfoPath.MergeEventHandler Merge;
member this.Merge : Microsoft.Office.InfoPath.MergeEventHandler 
Public MustOverride Custom Event Merge As MergeEventHandler 

Type d'événement

Exceptions

Le développeur a tenté de lier l'événement dans un emplacement autre que la méthode InternalStartup.

Exemples

Dans l’exemple suivant, le gestionnaire d’événements pour l’événement Merge définit des variables pour indiquer la status de l’opération de fusion, appelle la MergeForm(XPathNavigator) méthode de la XmlForm classe pour effectuer l’opération de fusion et affiche un message lorsque la fusion est terminée.

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

Remarques

Important : l’événement Merge n’est pas destiné à être instancié par le développeur dans le code du formulaire. Vous devez uniquement ajouter des gestionnaires d’événements pour les événements au niveau du formulaire à partir de l’interface utilisateur du mode création Microsoft InfoPath. 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 de votre fichier de code de formulaire à l’aide de la EventManager classe et du membre de la FormEvents classe 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 : Ajouter un gestionnaire d'événements.

L’événement Merge est lié à l’aide du MergeEventHandler délégué.

L’événement Merge peut être annulé en utilisant la CancelableArgs propriété de la MergeEventArgs classe pour définir la propriété Cancel sur true.

Si vous annulez l’événement, le fonctionnement d’InfoPath dépend de la façon dont vous définissez les Message propriétés et MessageDetails comme décrit dans le tableau suivant.

Affectez uniquement une chaîne de message à la propriété Message.Votre message et « Voulez-vous continuer ? » avec les boutons Oui, Oui à Tout et Annuler.
Affectez uniquement une chaîne de message à la propriété MessageDetails.« Microsoft Office InfoPath a rencontré un problème de fusion du formulaire suivant : formname.xml. » et votre message détaillé avec les boutons Oui, Oui à 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 définissez-les à la fois sur une référence Null (Nothing en Visual Basic) ou une chaîne videAucune 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 OuiL'opération de fusion a lieu et l'utilisateur doit cliquer sur Oui pour chaque formulaire à fusionner.
Bouton Oui pour toutL'opération de fusion a lieu et tous les formulaires sélectionnés sont fusionnés.
Bouton AnnulerLa 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 d’événements pour 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 OnAfterImport événement se produit une fois l’opération de fusion terminée. Le modèle objet Microsoft InfoPath ne fournit pas d’é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 des Index propriétés et Count de la MergeEventArgs classe pour confirmer que l’opération de fusion est terminée, avant d’effectuer des opérations « après fusion ».

Vous pouvez uniquement accéder à ce type ou à ce membre à partir du code exécuté dans les formulaires ouverts dans Microsoft InfoPath Filler.

S’applique à