Evento FormEvents.Merge
Si verifica quando viene richiamato il comando Unisci moduli dall'interfaccia utente o quando InfoPath viene avviato con l'opzione della riga di comando /aggregate.
Spazio dei nomi: Microsoft.Office.InfoPath
Assembly: Microsoft.Office.InfoPath (in microsoft.office.infopath.dll)
Sintassi
Public Event Merge As MergeEventHandler
Dim instance As FormEvents
Dim handler As MergeEventHandler
AddHandler instance.Merge, handler
public abstract event MergeEventHandler Merge
Eccezioni
Tipo eccezione | Condizione |
---|---|
Lo sviluppatore ha cercato di associare l'evento in una posizione diversa dal metodo InternalStartup. |
Osservazioni
![]() |
---|
Gli sviluppatori non devono creare un'istanza dell'evento Merge nel codice del modulo. È consigliabile aggiungere gestori eventi per eventi a livello di modulo solo dall'interfaccia utente in modalità progettazione di Microsoft Office InfoPath 2007. Quando si aggiunge un gestore eventi al modello di modulo dall'interfaccia utente in modalità progettazione, tramite InfoPath viene generato codice nel metodo InternalStartup del file di codice del modulo utilizzando la classe EventManager e il membro della classe FormEvents per associare l'evento al relativo gestore eventi. Per informazioni su come aggiungere gestori eventi in modalità progettazione di InfoPath, vedere Procedura: Aggiungere un gestore eventi. |
L'evento Merge viene associato utilizzando il delegato MergeEventHandler.
L'evento Merge può essere annullato utilizzando la proprietà CancelableArgs della classe MergeEventArgs per impostare la proprietà Cancel su true.
Se si annulla l'evento, l'operazione eseguita da InfoPath dipende dall'impostazione delle proprietà Message e MessageDetails, come descritto nella tabella seguente.
Impostazione delle proprietà Message e MessageDetails |
Finestra di dialogo e testo visualizzati |
---|---|
Impostazione solo della proprietà Message su una stringa di messaggio. |
Messaggio impostato insieme a "Continuare?" e ai pulsanti Sì, Sì a tutti e Annulla. |
Impostazione solo della proprietà MessageDetails su una stringa di messaggio. |
"Si è verificato un problema durante l'unione del modulo seguente: nomemodulo.xml." insieme al messaggio dettagliato impostato e ai pulsanti Sì, Sì a tutti e Annulla. |
Impostazione di entrambe le proprietà Message e MessageDetails su una stringa di messaggio. |
Messaggio e messaggio dettagliato impostati insieme a "Continuare?" e ai pulsanti Sì, Sì a tutti e Annulla. |
Nessuna impostazione per le proprietà Message e MessageDetails oppure impostazione di entrambe le proprietà su null o su una stringa vuota. |
Non viene visualizzata nessuna finestra di dialogo. |
Quando un utente fa clic sui pulsanti Sì, Sì a tutti e Annulla si verificano gli eventi seguenti:
Pulsante scelto |
Evento di unione |
---|---|
Pulsante Sì |
Viene eseguita l'operazione di unione e l'utente deve fare clic su Sì per ogni singolo modulo unito. |
Pulsante Sì a tutti |
Viene eseguita l'operazione di unione e tutti i moduli selezionati vengono uniti. |
Pulsante Annulla |
Viene annullata l'unione di tutti i moduli. Se l'utente ha fatto clic su Sì per alcuni moduli prima di fare clic su Annulla, viene comunque annullata anche l'unione di tali moduli. |
L'oggetto MergeEventArgs viene passato come parametro al gestore eventi per l'evento Merge di un modulo. L'oggetto MergeEventArgs implementa proprietà che possono essere utilizzate durante l'evento Merge per interagire a livello di programmazione con il documento XML sottostante di un modulo e per determinare le proprietà di unione, ad esempio il numero di file da unire. Le proprietà implementate dall'oggetto MergeEventArgs sono disponibili solo durante tale evento.
Durante una singola operazione di unione di moduli, l'evento Merge si verifica, e il codice nel relativo gestore eventi viene eseguito, una volta per ogni file unito.
![]() |
---|
Nel modello a oggetti di InfoPath 2003 è disponibile un evento OnAfterImport che viene generato quando è stata completata l'operazione di unione. Il modello a oggetti di Microsoft Office InfoPath 2007 include un evento equivalente. È tuttavia possibile ottenere la stessa funzionalità in un gestore eventi per l'evento Merge confrontando i valori delle proprietà Index e Count della classe MergeEventArgs per verificare che l'operazione di unione sia stata completata, prima di eseguire eventuali operazioni successive all'unione. |
A questo tipo o membro può accedere solo il codice in esecuzione in moduli aperti in Microsoft Office InfoPath 2007.
Esempio
Nell'esempio seguente viene utilizzato il gestore eventi per l'evento Merge per impostare le variabili per indicare lo stato dell'operazione di unione, per chiamare il metodo MergeForm(XPathNavigator) della classe XmlForm per eseguire l'operazione di unione e per visualizzare un messaggio al termine del processo di unione.
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
Vedere anche
Riferimenti
Classe FormEvents
Membri FormEvents
Spazio dei nomi Microsoft.Office.InfoPath