Página 1 de 1
Como chamar função para validar no GetBox ?
Enviado: 08 Nov 2013 18:38
por Softwhouse
Como faço para chamar uma função de validação no GetBox ?
Como chamar função para validar no GetBox ?
Enviado: 08 Nov 2013 21:58
por Toledo
Fernando, no GETBOX você pode usar o VALID.
Código: Selecionar todos
DEFINE GETBOX oEstado
ROW 360
COL 680
WIDTH 30
HEIGHT 20
VALUE SPACE(2)
PICTURE "@!"
VALID {|| ValidaUF(this.value) }
MESSAGE "Informe a Sigla do Estado"
END GETBOX
Veja também a pasta \SAMPLES\BASIC\GetBox da sua versão da MiniGui, que tem outros exemplos.
Abraços,
Como chamar função para validar no GetBox ?
Enviado: 11 Nov 2013 15:44
por Softwhouse
Toledo, boa tarde, já havia chamado a função dessa forma, acredito que o problema então esteja no retorno (.T.) pois o foco não sai do campo a validar.
Como chamar função para validar no GetBox ?
Enviado: 11 Nov 2013 16:53
por Toledo
Fernando, a função no VALID tem que retornar .T. ou .F., e o foco só vai para o próximo campo quando o retorno for .T.
Só lembrando....
Toledo escreveu:Mas o GetBox tem um pequeno problema quando se usa o VALID, você não consegui ir para um outro campo do form ou clicar em algum botão se deixar o GetBox vazio, você tem que digitar um valor válido para sair do GetBox, mesmo que você esteja clicando num botão "Sair" ou "Cancela" que vai finalizar o form (release). Apesar que teclando ESC o form é finalizado sem validar o GetBox.
Abraços,
Como chamar função para validar no GetBox ?
Enviado: 11 Nov 2013 18:08
por Softwhouse
Toledo, o que está acontecendo é o seguinte:
Usei Picture '@R 99.999.999/9999-99' e o 'this.value' passa a máscara junto. Qual o comando para passar somente o valor sem a máscara? Obrigado!
Como chamar função para validar no GetBox ?
Enviado: 11 Nov 2013 19:42
por Pablo César
Se o problema é remover as máscara após o This.Value, você poderia utilizar a função CharRem removendo os caracteres pontos, traços e barra.
Como chamar função para validar no GetBox ?
Enviado: 11 Nov 2013 20:09
por Softwhouse
Grande Pablo! Resolveu o problema. Estava pensando em usar StrTran() dentro da função. Usei CharRem(), que eu não conhecia, e ficou assim: Valid {||CharRem('. / -', this.value)}.
Valeu, muito obrigado.
Como chamar função para validar no GetBox ?
Enviado: 11 Nov 2013 20:16
por Toledo
Softwhouse escreveu:Usei Picture '@R 99.999.999/9999-99' e o 'this.value' passa a máscara junto.
Fernando, fiz um teste aqui e a máscara não vai junto com o this.Value.
Código: Selecionar todos
#include "minigui.ch"
*----------------------
function main
*----------------------
define window form_1 ;
at 0,0 width 300 height 250 ;
title "Getbox Picture Demo" ;
main
@ 50,40 getbox getbox_1 Value Spac(14) Picture "@R 99.999.999/9999-99" ;
valid {|| ValDemo(this.value)}
@ 100,40 getbox getbox_2 Value Spac(10) Picture "@!"
end window
form_1.center
form_1.activate
return Nil
*----------------------
Func ValDemo(cGet)
*----------------------
MsgInfo(cGet)
Return .T.
Abraços,
Como chamar função para validar no GetBox ?
Enviado: 11 Nov 2013 20:40
por Softwhouse
Ôpa, então tem coisa errada no meu código Toledo. Vou copiar seu código e montar com minha função de validação para ver o que está acontecendo, amanhã retorno. Obrigado!
Como chamar função para validar no GetBox ?
Enviado: 12 Nov 2013 09:14
por Softwhouse
Bom dia Toledo,
Na função ValDemo(cGet) substituí MsgInfo(cGet) por MsgInfo(Len(cGet)) e retornou 18 ao invés de 14. A máscara não vai, mas altera o tamanho da string que é testada se possui o tamanho 14 na função. AllTrim() já deve resolver.
Abraços