Freigeben über


FormEvents.Merge Ereignis

Definition

Tritt ein, wenn der Befehl Formulare zusammenführen von der Benutzeroberfläche aufgerufen oder InfoPath über die /aggregate-Befehlszeilenoption gestartet wird.

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 

Ereignistyp

Ausnahmen

Es wurde versucht, das Ereignis an einen anderen Speicherort als die InternalStartup-Methode zu binden.

Beispiele

Im folgenden Beispiel legt der Ereignishandler für das Merge-Ereignis Variablen fest, um die status des Zusammenführungsvorgangs anzugeben, ruft die MergeForm(XPathNavigator) -Methode der XmlForm -Klasse auf, um den Mergevorgang auszuführen, und zeigt eine Meldung an, wenn das Zusammenführen abgeschlossen ist.

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

Hinweise

Wichtig: Das Merge-Ereignis soll nicht vom Entwickler im Formularcode instanziiert werden. Sie sollten nur Ereignishandler für Ereignisse auf Formularebene über die Benutzeroberfläche des Microsoft InfoPath-Entwurfsmodus hinzufügen. Wenn Sie ihrer Formularvorlage über die Benutzeroberfläche des Entwurfsmodus einen Ereignishandler hinzufügen, generiert InfoPath Code in der InternalStartup-Methode Ihrer Formularcodedatei mithilfe der EventManager -Klasse und des Members der FormEvents -Klasse, um das Ereignis an ihren Ereignishandler zu binden. Weitere Informationen zum Hinzufügen von Ereignishandlern im InfoPath-Entwurfsmodus finden Sie unter Vorgehensweise: Hinzufügen eines Ereignishandlers.

Das Merge-Ereignis wird mithilfe des MergeEventHandler Delegaten gebunden.

Das Merge-Ereignis kann mithilfe der CancelableArgs -Eigenschaft der MergeEventArgs -Klasse abgebrochen werden, um die Cancel-Eigenschaft auf true festzulegen.

Wenn Sie das Ereignis abbrechen, hängt die Funktionsweise von InfoPath davon ab, ob oder wie Sie die Message Eigenschaften und MessageDetails festlegen, wie in der folgenden Tabelle beschrieben.

Legt nur die Message-Eigenschaft auf eine Meldungszeichenfolge fest.Ihre Nachricht und "Möchten Sie den Vorgang fortsetzen?" mit den Schaltflächen Ja, Ja für alle und Abbrechen.
Legt nur die MessageDetails-Eigenschaft auf eine Meldungszeichenfolge fest."Microsoft Office InfoPath hat ein Problem beim Zusammenführen der folgenden Form: formname.xml." und Ihre ausführliche Nachricht mit den Schaltflächen Ja, Ja zu allen und Abbrechen.
Legt sowohl die Message- als auch die MessageDetails-Eigenschaft auf eine Meldungszeichenfolge fest.Die Meldung und detaillierte Meldung mit den Schaltflächen Ja, Ja, alle und Abbrechen.
Legen Sie die Eigenschaften Message und MessageDetails nicht fest, oder legen Sie sie nicht auf einen NULL-Verweis (Nothing in Visual Basic) oder eine leere Zeichenfolge fest.Es wird kein Dialogfeld angezeigt.

Das Verhalten ist beim Klicken der Schaltflächen Ja, Ja, alle und Abbrechen folgendermaßen:

Schaltfläche JaDer Zusammenführungsvorgang wird ausgeführt. Dabei muss der Benutzer für jedes zusammengeführte Formular auf Ja klicken.
Schaltfläche Ja, alleDer Zusammenführungsvorgang wird ausgeführt. Dabei werden alle ausgewählten Formulare zusammengeführt.
Schaltfläche AbbrechenDie Zusammenführung aller Formulare wird abgebrochen. Wenn der Benutzer vor dem Klicken auf die Schaltfläche Abbrechen weitere Formulare auf Ja geklickt hat, wird auch die Zusammenführung dieser Formulare abgebrochen.

Das MergeEventArgs -Objekt wird als Parameter an den Ereignishandler für das Merge-Ereignis eines Formulars übergeben. Das MergeEventArgs-Objekt stellt Eigenschaften bereit, die während des Merge-Ereignisses verwendet werden können, um mit dem einem Formular zugrunde liegenden XML-Dokument programmgesteuert zu interagieren und um die Zusammenführungseigenschaften, wie z. B. die Anzahl der zusammenzuführenden Dateien, festzulegen. Die von diesem MergeEventArgs-Objekt bereitgestellten Eigenschaften sind während dieses Ereignisses nicht verfügbar.

Während eines einzelnen Zusammenführungsvorgangs von Formularen tritt das Merge-Ereignis (mit Ausführung des Codes im zugehörigen Ereignishandler) jeweils einmal für die zusammengeführten Dateien ein.

Wichtig: Im InfoPath 2003-Objektmodell tritt ein OnAfterImport Ereignis auf, das nach Abschluss des Zusammenführungsvorgangs auftritt. Das Microsoft InfoPath-Objektmodell stellt kein entsprechendes Ereignis bereit. Die gleiche Funktionalität kann jedoch in einem Ereignishandler für das Merge-Ereignis erreicht werden, indem die Werte der Index Eigenschaften und Count der MergeEventArgs -Klasse verglichen werden, um zu bestätigen, dass der Zusammenführungsvorgang abgeschlossen ist, bevor "after merge"-Vorgänge ausgeführt werden.

Auf diesen Typ oder dieses Mitglied kann nur über Code zugegriffen werden, der in Formularen ausgeführt wird, die in Microsoft InfoPath Filler geöffnet wurden.

Gilt für: