Versão atual:

Bug na Validação de Campo

Boa tarde,

Possuo uma tela que tem um campo com validação, porem esta validação esta triggando quando eu clico no botão cancelar! Alguém sabe o que há de errado? Para mim não faz tanto sentido a validação ocorrer ao clicar em um botão. Será que a ordem de criação dos objetos está interferindo nisto? Segue o codigo da tela:

DEFINE MSDIALOG oDlg TITLE "Transferencia PA x CP" FROM 000, 000  TO 310, 510 COLORS 0, 16777215 PIXEL
    @ 012, 009 SAY lbl_prod PROMPT "Produto:" SIZE 025, 007 OF oDlg COLORS 0, 16777215 PIXEL
    @ 010, 044 MSGET txt_prod VAR cxt_prod SIZE 060, 010 OF oDlg COLORS 0, 16777215 ON CHANGE MsgRun('Atualizando informações visuais...','Carregando',{|| novoProd() }) PIXEL F3 "B1PAKT" VALID validProd()
    @ 028, 009 SAY lbl_quant PROMPT "Quantidade:" SIZE 030, 007 OF oDlg  COLORS 0, 16777215 PIXEL
    @ 026, 044 MSGET txt_quant VAR cxt_quant SIZE 060, 010 OF oDlg PICTURE "@E 9999.999" VALID converte() COLORS 0, 16777215  PIXEL
    @ 044, 009 SAY lbl_armazem PROMPT "Armazem:" SIZE 025, 007 OF oDlg COLORS 0, 16777215 PIXEL
    @ 042, 044 MSGET txt_loc VAR clocal SIZE 060, 010 OF oDlg COLORS 0, 16777215 ON CHANGE newArm1() PIXEL F3 "NNR"
    @ 060, 009 SAY oNewArm PROMPT "N.Armazem:" SIZE 040, 007 OF oDlg COLORS 0, 16777215 PIXEL
    @ 058, 044 MSGET txt_loc2 VAR clocal2 SIZE 060, 010 OF oDlg COLORS 0, 16777215 PIXEL WHEN .F.
    @ 075, 090 BUTTON bt_cancel PROMPT "Cancelar" SIZE 037, 012 OF oDlg ACTION Close(oDlg) PIXEL
    @ 075, 133 BUTTON bt_add PROMPT "Adicionar" SIZE 037, 012 OF oDlg ACTION MsgRun('Executando a movimentação...' ,'Carregando...' ,{|| Add()}) PIXEL
    @ 009, 111 SAY oSay1 PROMPT "Novo Produto:" SIZE 039, 007 OF oDlg COLORS 0, 16777215 PIXEL
    @ 009, 146 SAY oLblNewProd PROMPT lbl_newProd SIZE 127, 007 OF oDlg COLORS 0, 16777215 PIXEL
    @ 021, 111 SAY oSay2 PROMPT "Quantidade:" SIZE 030, 007 OF oDlg COLORS 0, 16777215 PIXEL
    @ 021, 146 SAY oLblNewQuant PROMPT lbl_newQuant SIZE 030, 007 OF oDlg FONT oFont1 PICTURE "@E 9999.9999" COLORS 0, 16777215 PIXEL
    fg_tabela()
    novoProd()
    ACTIVATE MSDIALOG oDlg

Edit 1: Sim, se eu alterar a ordem de criação dos objetos o foco começa direto no botão, não triggando a validação, porem ela realmente deveria acontecer dessa forma ou é algum erro de lógica da minha parte?

Versões (2):

Ver a versão formatada

Bug na Validação de Campo

Comentário

new question