Como focar em componente após objeto Interação



  • Bom dia para todos! Tenho 2 componentes no formulário, entre outros, que vou chamar de comp1 (tipo de pessoa: "F ou J") e o comp2 (nro. do CPF ou do CNPJ) em um formulário. Necessito validar o conteúdo de comp2. Assim, disparo um fluxo (fluxo1) que foi associado ao Evento "ao sair" do componente (comp2). O fluxo (fluxo1) recebe como parâmetro os componentes comp1 e comp2. A sequência do fluxo é: um objeto decisão (decisão1) para identificar se o comp1 contém "F", se "SIM" segue para outra decisão (decisão2) para validar como CPF o conteúdo de comp2 e se "NÃO" segue para outra decisão (decisão3) para validar como CNPJ o conteúdo de comp2. Em caso de erro na validação, tanto em decisão2 como em decisão3, na sequência do fluxo, existem mensagens (int1 para a decisão2 e int2 para a decisão3). Se o fluxo permanecer assim o usuário tem que pressionar o botão "OK" para fechar a janela de mensagem (em int1 e int2) e voltar a ter acesso ao formulário. Este comportamento está correto mas ao fechar a janela de interação o foco não volta automaticamente para o componente comp2. Para resolver isto agreguei um objeto "processamento" (proc1) na sequência e é aí que surge o problema. Em proc1 coloquei a função "Focar componente" para forçar o foco para comp2 (componente do CPF/CNPJ) para que o usuário informe um CPF/CNPJ válido. O que ocorre é que o fluxo de ações não fica aguardando o pressionamento do "OK" na janela de interação (int1 ou int2) mas segue e executa o processamento de foco. Assim a janela de mensagem fica aberta mas o foco fica no componente do formulário mas ao mesmo tempo não consigo interagir com o formulário pois a janela de interação não permite. Se não apontar e disparar o "OK" o processo fica em loop e a janela de interação vai se sobrepondo a casa tentativa de acesso a área do formulário, isto é, a janela de interação perde o comportamento "modal". A pergunta é: tem como dar foco para um componente do formulário após mensagem de interação sem provocar este comportamento? O correto não seria o processamento ocorrer somente após pressionar o "OK" da mensagem? Obrigado.


  • Neste caso, não use mensagem de interação. Use Alertar aguardando OK.

    Coloque um processamento para alertar uma mensagem para o usuário e depois coloque o processamento para focar o componente.

    O foco deverá ser depois da mensagem de alerta.


  • Vou fazer as alterações sugeridas e posto o resultado na sequência. Obrigado.


  • Boa tarde. Acabei de realizar o teste e colocando no lugar do objeto interação um objeto processamento e utilizando a função sugerida, "Alertar Aguardando Ok". O resultado foi exatamente o que eu estava procurando. Questão resolvida. Obrigado.

Log in to reply