Arrastar conteúdo para componente no formulário



  • Seguinte galera,

    Em um formulário de cadastro tenho um campo CPF onde ao sair executo um fluxo que faz uma verificação para saber se o CPF já está cadastrado como cliente, para evitar duplo cadastro com mesmo CPF, se o CPF é válido, etc. Até aí tudo beleza.

    O problema é se a pessoa pega o valor de outro lugar (p. ex. bloco de notas, navegador) seleciona o valor e arrasta para o campo CPF do formulário, a função não é executada, ao que parece não é identificado o evento de arrastar e jogar, não passando pelo evento ao sair para executar a função.

    Já tentei os eventos ao modificar, ao entrar, ao pressionar tecla, ou seja já tentei tudo e o evento de arrastar o conteudo de outro lugar e jogar no campo não é identificado.

    O que vocês fazem para tratar isso?

    Alguem já fez esse teste por exemplo de validar um campo com CPF, arrastando o conteudo de outro lugar e jogando no campo para validar em qualquer evento do componente?

    Acredito que a única solução será validar antes de gravar, o que de certa forma pode gerar incomodo pois se o CPF já estiver cadastrado o trabalho foi em vão se o cadastro estiver atualizado, se não tiver posso efetuar um update direto, porém existe outros incomodos tipo o valor não é mascarado, e gravo no BD com a mascara.

    OBS: Efetuei alguns teste e em todo formulário o componente com qualquer tipo (mascara) definido não é aplicada caso o usuário arraste o valor de outro lugar sem a formatação devida, inclusive não é respeitado o limite de caracteres ou conteudo. Façam seus testes.

    Utilizo o maker 2.6 e webrun 2.6.2.18

    Obrigado pela ajuda


  • [quote="akira.mt"]Seguinte galera,

    Em um formulário de cadastro tenho um campo CPF onde ao sair executo um fluxo que faz uma verificação para saber se o CPF já está cadastrado como cliente, para evitar duplo cadastro com mesmo CPF, se o CPF é válido, etc. Até aí tudo beleza.

    O problema é se a pessoa pega o valor de outro lugar (p. ex. bloco de notas, navegador) seleciona o valor e arrasta para o campo CPF do formulário, a função não é executada, ao que parece não é identificado o evento de arrastar e jogar, não passando pelo evento ao sair para executar a função.

    Já tentei os eventos ao modificar, ao entrar, ao pressionar tecla, ou seja já tentei tudo e o evento de arrastar o conteudo de outro lugar e jogar no campo não é identificado.

    O que vocês fazem para tratar isso?

    Alguem já fez esse teste por exemplo de validar um campo com CPF, arrastando o conteudo de outro lugar e jogando no campo para validar em qualquer evento do componente?

    Acredito que a única solução será validar antes de gravar, o que de certa forma pode gerar incomodo pois se o CPF já estiver cadastrado o trabalho foi em vão se o cadastro estiver atualizado, se não tiver posso efetuar um update direto, porém existe outros incomodos tipo o valor não é mascarado, e gravo no BD com a mascara.

    OBS: Efetuei alguns teste e em todo formulário o componente com qualquer tipo (mascara) definido não é aplicada caso o usuário arraste o valor de outro lugar sem a formatação devida, inclusive não é respeitado o limite de caracteres ou conteudo. Façam seus testes.

    Utilizo o maker 2.6 e webrun 2.6.2.18

    Obrigado pela ajuda[/quote] O comportamento não é tratado pelo Webrun.

    Sugestão:

    1) Troque seu campo CPF do banco para inserir apenas os números, sem máscaras. Desta forma, você pode fazer a comparação de existência no banco sem problemas.
    2) Faça a validação no evento ao sair como você está fazendo.
    3) Faça a validação do cpf no evento antes de inserir/alterar no banco para garantir a integridade de suas informações

    Pronto. Agora, os 0,01% dos seus clientes que farão "arrasto" do bloco de notas para seu campo do formulário irão ser barrados pelo fluxo antes de inserir/alterar. :)


  • Faça a validação direto via banco de dados criando uma Unique key no campo CPF.

    Nas definições coloque uma mensagem do seu gosto para erro de chave e seja feliz sem fluxos.

    Abs

Log in to reply