FormEvents.Merge Evento
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Ocorre quando o comando Merge Forms é invocado da interface do usuário ou o InfoPath é iniciado com o comutador /aggregate command-line.
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
Tipo de evento
Exceções
O desenvolvedor tentou associar o evento em algum local diferente do método InternalStartup .
Exemplos
No exemplo a seguir, o manipulador de eventos do evento Merge define variáveis para indicar o status da operação de mesclagem, chama o MergeForm(XPathNavigator) método da XmlForm classe para executar a operação de mesclagem e exibe uma mensagem quando a mesclagem é concluída.
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
Comentários
Importante: o evento Merge não deve ser instanciado pelo desenvolvedor no código de formulário. Você só deve adicionar manipuladores de eventos para eventos no nível do formulário na interface do usuário do modo de design do Microsoft InfoPath. Quando você adiciona um manipulador de eventos ao modelo de formulário da interface do usuário do modo de design, o InfoPath gera código no método InternalStartup do arquivo de código de formulário usando a EventManager classe e o FormEvents membro da classe para associar o evento ao manipulador de eventos. Para obter informações sobre como adicionar manipuladores de eventos no modo de design do InfoPath, consulte Como adicionar um manipulador de eventos.
O evento Merge está vinculado usando o MergeEventHandler delegado.
O evento Merge pode ser cancelado usando a CancelableArgs propriedade da MergeEventArgs classe para definir a propriedade Cancel como true.
Se você cancelar o evento, como o InfoPath funciona depende se ou como você define as Message propriedades e MessageDetails conforme descrito na tabela a seguir.
Defina apenas a propriedade Message como uma cadeia de caracteres de mensagem | Sua mensagem e "Você quer continuar?" com botões Sim, Sim para Todos e Cancelar. |
Defina apenas a propriedade MessageDetails como uma cadeia de caracteres de mensagem | "O Microsoft Office InfoPath encontrou um problema ao mesclar o seguinte formulário: formname.xml". e sua mensagem detalhada com botões Sim, Sim para Todos e Cancelar. |
Defina as propriedades Message e MessageDetails como uma cadeia de caracteres de mensagem | Sua mensagem e mensagem detalhada com botões Sim, Sim para Todos e Cancelar. |
Não defina as propriedades Message e MessageDetails ou defina ambas como uma referência nula (Nada no Visual Basic) ou uma cadeia de caracteres vazia | Nenhuma caixa de diálogo é exibida. |
Os comportamentos quando um usuário clica nos botões Sim, Sim para Todos e Cancelar são os seguintes:
Botão Sim | A operação de mesclagem ocorre e o usuário precisa clicar em Sim para cada formulário individual que está sendo mesclado. |
Botão Sim para Todos | A operação de mesclagem ocorre e todos os formulários selecionados são mesclados. |
Botão Cancelar | A fusão de todos os formulários foi cancelada. Se o usuário clicasse em Sim para quaisquer formulários antes de clicar em Cancelar, a fusão desses formulários também será cancelada. |
O MergeEventArgs objeto é passado como um parâmetro para o manipulador de eventos para o evento Merge de um formulário. O objeto MergeEventArgs fornece propriedades que podem ser usadas durante o evento Merge para interagir programaticamente com o documento XML subjacente de um formulário e determinar propriedades de mesclagem, como o número de arquivos que estão sendo mesclados. As propriedades que o objeto MergeEventArgs fornece estão disponíveis somente durante esse evento.
Durante uma única operação de formulários de mesclagem, o evento Merge ocorrerá (e o código em seu manipulador de eventos será executado) uma vez para cada arquivo que está sendo mesclado.
Importante: no modelo de objeto InfoPath 2003, há um OnAfterImport evento que ocorre após a conclusão da operação de mesclagem. O modelo de objeto Microsoft InfoPath não fornece um evento equivalente. No entanto, a mesma funcionalidade pode ser obtida em um manipulador de eventos para o evento Merge comparando os valores das Index propriedades e Count da MergeEventArgs classe para confirmar se a operação de mesclagem está concluída, antes de executar quaisquer operações "após a mesclagem".
This type or member can be accessed only from code running in forms opened in Microsoft InfoPath Filler.