Janela temporaria
Moderador: Moderadores
-
gilbertosilverio
- Usuário Nível 3

- Mensagens: 339
- Registrado em: 18 Jan 2009 10:39
- Localização: Ribeirao Pires - SP
Janela temporaria
Ola amigos,
Preciso montar aqui na farmácia, uma rotina para mostrar o preço e os dados de um produto quando o cliente passar o código de barras em um leitor.
A principio ate monte uma tela de pesquisa, mais ela fica ativa com os dados ate nova pesquisa, mais gostaria que ela ficasse ativa somente por um pequeno período.
Alguém teia um pequeno exemplo de como posso fazer isso. :% :%
Grato.
Preciso montar aqui na farmácia, uma rotina para mostrar o preço e os dados de um produto quando o cliente passar o código de barras em um leitor.
A principio ate monte uma tela de pesquisa, mais ela fica ativa com os dados ate nova pesquisa, mais gostaria que ela ficasse ativa somente por um pequeno período.
Alguém teia um pequeno exemplo de como posso fazer isso. :% :%
Grato.
GilbertoSilverio
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Janela temporaria
Amigo, você tem um código de exemplo desta tela de pesquisa que você fez?
Com um exemplo vai ficar mais fácil lhe ajudar.
Abraços
Com um exemplo vai ficar mais fácil lhe ajudar.
Abraços
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
-
gilbertosilverio
- Usuário Nível 3

- Mensagens: 339
- Registrado em: 18 Jan 2009 10:39
- Localização: Ribeirao Pires - SP
Janela temporaria
Bom dia Toledo,
A grosso modo seria isso, tenho a rotina em modo caractere, mais na HWGUI bato cabeça...
Quero fazer a pesquisa pelo codigo EAN, retornar os dados do produto, esperar um tempo e limpar a tela para uma nova pesquisa.
A grosso modo seria isso, tenho a rotina em modo caractere, mais na HWGUI bato cabeça...
Quero fazer a pesquisa pelo codigo EAN, retornar os dados do produto, esperar um tempo e limpar a tela para uma nova pesquisa.
Código: Selecionar todos
FUNCTION PESQUISA_PRECO()
PRIVATE oDLG, oBUTTON1, oEDIT1, cEDIT1:=SPAC(13), oLABEL1, oLABEL2, nVLRMARCA:=0
DBCLOSEALL()
DBUSEAREA(.T., "DBFNTX", [xESTOQUE] , [xESTOQUE], .T.)
SET INDEX TO xESTEAN
INIT DIALOG oDlg TITLE "Preco do item" AT 0, 0 SIZE 1092,630 NOEXIT CLIPPER COLOR x_WHITE ;
FONT HFont():Add( 'Verdana',0,-13,400,,,) ;
STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+DS_CENTER ;
ON EXIT {||Fileclose()}
This_VISU := oDlg
@ 19,2 GROUPBOX oGroup1 CAPTION "" SIZE 1047,123 STYLE BS_LEFT
@ 28,11 SAY oLabel1 CAPTION "Codigo EAN" SIZE 60,21 COLOR 4227072 TRANSPARENT
@ 28,32 GET oEdit1 VAR cEdit1 SIZE 200,26 PICTURE '9999999999999' ;
VALID {|| PESQUISA_VALOR() }
@ 28,200 SAY oLabel2 CAPTION [Valor do item: ]+STR(nVLRMARCA,12,2) SIZE 400,24 COLOR 4227072 TRANSPARENT
ACTIVATE DIALOG oDlg
RETURN NIL
FUNCTION PESQUISA_VALOR()
LOCAL xEAN:= TRANS(cEDIT1, [@R 999.99999.9999-9])
xESTOQUE->(DBSEEK(xEAN, .F.))
IF xESTOQUE->(FOUND())
nVLRMARCA:=xESTOQUE->TABELA02
This_VISU:oLABEL2:SETTEXT([Valor do item: ] + STR(nVLRMARCA,12,2))
This_VISU:oLABEL2:REFRESH()
cEDIT:=SPAC(13)
This_Visu:oEdit1:REFRESH()
This_Visu:oEdit1:setfocus()
ELSE
cEDIT:=SPAC(13)
This_Visu:oEdit1:REFRESH()
This_Visu:oEdit1:setfocus()
ENDIF
RETURN .T.
GilbertoSilverio
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
-
gilbertosilverio
- Usuário Nível 3

- Mensagens: 339
- Registrado em: 18 Jan 2009 10:39
- Localização: Ribeirao Pires - SP
Janela temporaria
Ola,
Consegui fazer mais ou menos o que preciso, mais ficou um código tão ruim que tenho ate vergonha de mostrar... rsrsrsr
Do jeito que esta, ate da pra usar, o único senão e se o usuário bipar outro item antes de encerrar o tempo de espera para recriar a janela, creio que existe algo mais pratico e mais fácil do que fiz, agradeço qualquer dica...
Não consigo entender o por que, de na validação do GET, ele não permanecer dentro da função que estou chamando, a PESQUISA_VALOR(), tentei de todas as maneiras parar a execução da rotina ai dentro, "PARAR AQUI", mais ele simplesmente sai.
Consegui fazer mais ou menos o que preciso, mais ficou um código tão ruim que tenho ate vergonha de mostrar... rsrsrsr
Do jeito que esta, ate da pra usar, o único senão e se o usuário bipar outro item antes de encerrar o tempo de espera para recriar a janela, creio que existe algo mais pratico e mais fácil do que fiz, agradeço qualquer dica...
Não consigo entender o por que, de na validação do GET, ele não permanecer dentro da função que estou chamando, a PESQUISA_VALOR(), tentei de todas as maneiras parar a execução da rotina ai dentro, "PARAR AQUI", mais ele simplesmente sai.
Código: Selecionar todos
FUNCTION PESQUISA_PRECO()
PRIVATE oDLGTEL, oBUTTON1, oET1, cET1:=SPAC(13), nVLRMARCA:=0, oGroup1
PRIVATE oET2, cET2:=SPAC(13), oLEL1, oLEL2, oLEL3, oLEL4
INIT DIALOG oDlgTEL TITLE "Preco do item" AT 0, 0 SIZE 1092,630 NOEXIT COLOR x_WHITE ;
FONT HFont():Add( 'Verdana',0,-13,400,,,) STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+DS_CENTER ;
ON EXIT {||Fileclose()}
@ 19,2 GROUPBOX oGroup1 CAPTION "" SIZE 1047,123 STYLE BS_LEFT
@ 28,11 SAY oLel1 CAPTION "Codigo EAN" SIZE 120,21 COLOR 4227072 TRANSPARENT
@ 28,35 GET oEt1 VAR cEt1 SIZE 200,26 PICTURE '9999999999999' VALID {|| IF(!EMPTY(cET1), ( PESQUISA_VALOR(), INKEY(2), oDLGTEL:CLOSE(), LIMPA() ), .T. ) }
@ 28,35 GET oEt2 VAR cEt2 SIZE 200,26
@ 19,125 GROUPBOX oGroup1 CAPTION "" SIZE 1047,130 STYLE BS_LEFT
@ 28,140 SAY oLel2 CAPTION [Descrição: ] SIZE 800,24 ;
COLOR 4227072 TRANSPARENT FONT HFont():Add( 'Verdana',0,-20,400,,,)
@ 28,180 SAY oLel3 CAPTION [De : ] SIZE 800,24 ;
COLOR 4227072 TRANSPARENT FONT HFont():Add( 'Verdana',0,-20,400,,,)
@ 28,220 SAY oLel4 CAPTION [Por: ] SIZE 800,24 ;
COLOR 4227072 TRANSPARENT FONT HFont():Add( 'Verdana',0,-20,400,,,)
ACTIVATE DIALOG oDlgTEL
RETURN NIL
FUNCTION PESQUISA_VALOR()
LOCAL xEAN:= TRANS(cET1, [@R 999.99999.9999-9])
DBCLOSEALL()
DBUSEAREA(.T., "DBFNTX", [xESTOQUE] , [xESTOQUE], .T.)
SET INDEX TO xESTEAN
xESTOQUE->(DBSEEK(xEAN, .F.))
IF xESTOQUE->(FOUND())
nVLRMARCA:=xESTOQUE->TABELA02 ; xPMC:=xESTOQUE->PRECOMC ; xDESCRI :=DESCRICAO
oLEL2:SETTEXT([Descricão: ]+xDESCRI )
oLEL2:REFRESH()
oLEL3:SETTEXT([De : ]+STR(xPMC,12,2) )
oLEL3:REFRESH()
oLEL4:SETTEXT([Por: ]+STR(nVLRMARCA,12,2) )
oLEL4:REFRESH()
cET1:=SPAC(13)
oEt1:Value := SPAC(13)
oEt1:REFRESH()
oEt1:setfocus()
ELSE
cET1:=SPAC(13)
oEt1:Value := SPAC(13)
oEt1:REFRESH()
oEt1:setfocus()
ENDIF
DBCLOSEALL()
hwg_msginfo([Parar aqui])
RETURN .T.
Function FileClose()
DBCloseArea()
DBCLOSEALL()
Return .T.
FUNCTION LIMPA()
PRIVATE oDLGTEL, oBUTTON1, oET1, cET1:=SPAC(13), nVLRMARCA:=0, oGroup1
PRIVATE oET2, cET2:=SPAC(13), oLEL1, oLEL2, oLEL3, oLEL4
INIT DIALOG oDlgTEL TITLE "Preco do item" AT 0, 0 SIZE 1092,630 NOEXIT COLOR x_WHITE ;
FONT HFont():Add( 'Verdana',0,-13,400,,,) STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+DS_CENTER ;
ON EXIT {||Fileclose()}
@ 19,2 GROUPBOX oGroup1 CAPTION "" SIZE 1047,123 STYLE BS_LEFT
@ 28,11 SAY oLel1 CAPTION "Codigo EAN" SIZE 120,21 COLOR 4227072 TRANSPARENT
@ 28,35 GET oEt1 VAR cEt1 SIZE 200,26 PICTURE '9999999999999' VALID {|| IF(!EMPTY(cET1), ( PESQUISA_VALOR(), INKEY(2), oDLGTEL:CLOSE(), LIMPA() ), .T. ) }
@ 28,35 GET oEt2 VAR cEt2 SIZE 200,26
@ 19,125 GROUPBOX oGroup1 CAPTION "" SIZE 1047,130 STYLE BS_LEFT
@ 28,140 SAY oLel2 CAPTION [Descrição: ] SIZE 800,24 ;
COLOR 4227072 TRANSPARENT FONT HFont():Add( 'Verdana',0,-20,400,,,)
@ 28,180 SAY oLel3 CAPTION [De : ] SIZE 800,24 ;
COLOR 4227072 TRANSPARENT FONT HFont():Add( 'Verdana',0,-20,400,,,)
@ 28,220 SAY oLel4 CAPTION [Por: ] SIZE 800,24 ;
COLOR 4227072 TRANSPARENT FONT HFont():Add( 'Verdana',0,-20,400,,,)
ACTIVATE DIALOG oDlgTEL
RETURN .T.
GilbertoSilverio
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Janela temporaria
Faz um teste com este código. Para ver as alterações que eu fiz, procure por //*** alteracao toledo ***.
Abraços
Código: Selecionar todos
FUNCTION PESQUISA_PRECO()
PRIVATE oDLGTEL, oBUTTON1, oET1, cET1:=SPAC(13), nVLRMARCA:=0, oGroup1
PRIVATE oET2, cET2:=SPAC(13), oLEL1, oLEL2, oLEL3, oLEL4
PRIVATE lTimerAtivo:=.F.,oTmpPes //*** alteracao toledo ****
INIT DIALOG oDlgTEL TITLE "Preco do item" AT 0, 0 SIZE 1092,630 NOEXIT COLOR x_WHITE ;
FONT HFont():Add( 'Verdana',0,-13,400,,,) STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+DS_CENTER ;
ON EXIT {||Fileclose()}
@ 19,2 GROUPBOX oGroup1 CAPTION "" SIZE 1047,123 STYLE BS_LEFT
@ 28,11 SAY oLel1 CAPTION "Codigo EAN" SIZE 120,21 COLOR 4227072 TRANSPARENT
@ 28,35 GET oEt1 VAR cEt1 SIZE 200,26 PICTURE '9999999999999' VALID {|| IF(!EMPTY(cET1), PESQUISA_VALOR(), .T. ) } //*** alteracao toledo ****
@ 28,35 GET oEt2 VAR cEt2 SIZE 200,26
@ 19,125 GROUPBOX oGroup1 CAPTION "" SIZE 1047,130 STYLE BS_LEFT
@ 28,140 SAY oLel2 CAPTION [Descrição: ] SIZE 800,24 ;
COLOR 4227072 FONT HFont():Add( 'Verdana',0,-20,400,,,) //*** alteracao toledo **** tirei TRANSPARENT
@ 28,180 SAY oLel3 CAPTION [De : ] SIZE 800,24 ;
COLOR 4227072 FONT HFont():Add( 'Verdana',0,-20,400,,,) //*** alteracao toledo ****
@ 28,220 SAY oLel4 CAPTION [Por: ] SIZE 800,24 ;
COLOR 4227072 FONT HFont():Add( 'Verdana',0,-20,400,,,) //*** alteracao toledo ****
ACTIVATE DIALOG oDlgTEL
RETURN NIL
FUNCTION PESQUISA_VALOR()
LOCAL xEAN:= TRANS(cET1, [@R 999.99999.9999-9])
DBCLOSEALL()
DBUSEAREA(.T., "DBFNTX", [xESTOQUE] , [xESTOQUE], .T.)
SET INDEX TO xESTEAN
xESTOQUE->(DBSEEK(xEAN, .F.))
IF xESTOQUE->(FOUND())
nVLRMARCA:=xESTOQUE->TABELA02 ; xPMC:=xESTOQUE->PRECOMC ; xDESCRI :=DESCRICAO
oLEL2:SETTEXT([Descricão: ]+xDESCRI )
oLEL2:REFRESH()
oLEL3:SETTEXT([De : ]+STR(xPMC,12,2) )
oLEL3:REFRESH()
oLEL4:SETTEXT([Por: ]+STR(nVLRMARCA,12,2) )
oLEL4:REFRESH()
cET1:=SPAC(13)
oEt1:Value := SPAC(13)
oEt1:REFRESH()
oEt1:setfocus()
If !lTimerAtivo //*** alteracao toledo **** inclui estas 6 linhas
SET TIMER oTmpPes OF oDlgTEL ID 2345 VALUE 20000 ACTION {||Limpa()} //seta 20 segundos
lTimerAtivo:=.T.
else
SetTimer(oDlgTEL:handle,2345,20000) //seta 20 segundos
endif
ELSE
cET1:=SPAC(13)
oEt1:Value := SPAC(13)
oEt1:REFRESH()
oEt1:setfocus()
ENDIF
DBCLOSEALL()
hwg_msginfo([Parar aqui])
RETURN .T.
Function FileClose()
DBCloseArea()
DBCLOSEALL()
Return .T.
Function Limpa() //*** alteracao toledo **** alterei toda a funcao
oLEL2:SETTEXT([Descricão: ]+SPAC(100) )
oLEL2:REFRESH()
oLEL3:SETTEXT([De : ]+SPAC(100) )
oLEL3:REFRESH()
oLEL4:SETTEXT([Por: ]+SPAC(100) )
oLEL4:REFRESH()
SetTimer(oDlgTEL:handle,2345,360000) //seta 6 minutos
Return .T.Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
-
gilbertosilverio
- Usuário Nível 3

- Mensagens: 339
- Registrado em: 18 Jan 2009 10:39
- Localização: Ribeirao Pires - SP
Janela temporaria
Toledo,
Muito obrigado, ficou perfeito.
:-Y :-Y :-Y
Muito obrigado, ficou perfeito.
:-Y :-Y :-Y
GilbertoSilverio
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
-
gilbertosilverio
- Usuário Nível 3

- Mensagens: 339
- Registrado em: 18 Jan 2009 10:39
- Localização: Ribeirao Pires - SP
Janela temporaria
Ola amigos,
Mais uma duvida:
Na rotina acima, quando bipo um item que tem o código EAN com 13 dígitos, ela funciona perfeitamente, mais tenho casos onde o produto não tem código EAN e uso o próprio código do sistema para verificar o preço.
Neste caso como faço pra validar o GET, somente usando um leitor de código de barras, quando o código for menor que 13 caracteres, no meu caso com 6 digitos.
Ja tentei de tudo e não consigo fazer funcionar.
Existe na HWGUI algum HWG_GetKeyState() para o leitor de codigo de barras, que mostre que e o final da leitora.
Grato.
Mais uma duvida:
Na rotina acima, quando bipo um item que tem o código EAN com 13 dígitos, ela funciona perfeitamente, mais tenho casos onde o produto não tem código EAN e uso o próprio código do sistema para verificar o preço.
Neste caso como faço pra validar o GET, somente usando um leitor de código de barras, quando o código for menor que 13 caracteres, no meu caso com 6 digitos.
Ja tentei de tudo e não consigo fazer funcionar.
Existe na HWGUI algum HWG_GetKeyState() para o leitor de codigo de barras, que mostre que e o final da leitora.
Grato.
Código: Selecionar todos
PRIVATE oET1, cET1:=SPAC(13)
@ 28,11 SAY oLel1 CAPTION "Codigo EAN" SIZE 120,21 COLOR 4227072
@ 28,35 GET oEt1 VAR cEt1 SIZE 200,26 PICTURE '9999999999999' VALID {|| IF(!EMPTY(cET1), PESQUISA_VALOR(), .T. ) }
GilbertoSilverio
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Janela temporaria
Ola!
Na leitora vc configura para teclar enter. Via manual da leitora, um livrinho cheios de códigos de barras.
Inclusive adicionar "@" no final da leitura do código, etc...
Coloque o get maior que 13 dígitos. cET1:=SPACE(20), por exemplo.
Saudações,
Itamar M. Lins Jr.
Na leitora vc configura para teclar enter. Via manual da leitora, um livrinho cheios de códigos de barras.
Inclusive adicionar "@" no final da leitura do código, etc...
Coloque o get maior que 13 dígitos. cET1:=SPACE(20), por exemplo.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
gilbertosilverio
- Usuário Nível 3

- Mensagens: 339
- Registrado em: 18 Jan 2009 10:39
- Localização: Ribeirao Pires - SP
Janela temporaria
Ola Itamar,
A rotina como o Toledo postou funciona perfeitamente para quando leio um codigo ean, o que ocorre e que tem produtos que não tem o EAN, ai uso uma etiqueta como um código interno de 6 dígitos, para esta pesquisa.
Ja coloquei uma cláusula WhEN na minha rotina pra tentar fazer o termino do leitor, ate funciona, mais tem horas que ele se perde...
Deixa quieto, tentei mudar para visual a tela que tenho em modo caracter, para deixar um pouco mais bonitinho, mais como não consigo enter como uma GUI funciona, vou deixar como esta mesmo... rsrsrsr
O minha lógica, velha, que estou acostumado, de ser linear, não se encaixa com as linguagem visuais, por exemplo nesta tela, onde so tenho um GET, tive que por outro GET em branco, somente para conseguir avançar, mesmo como o opção CLIPPER, para usar o ENTER ao inves do TAB, sem o segundo GET, ele o primeiro não e validado.
Como faço tudo por tentativa e erro, devido as minhas limitações, me baseio em exemplos que colho aqui no forum, mais como cada um tem sua logica, as vezes fica dificil de enter.
Agradeço sua atenção.
A rotina como o Toledo postou funciona perfeitamente para quando leio um codigo ean, o que ocorre e que tem produtos que não tem o EAN, ai uso uma etiqueta como um código interno de 6 dígitos, para esta pesquisa.
Ja coloquei uma cláusula WhEN na minha rotina pra tentar fazer o termino do leitor, ate funciona, mais tem horas que ele se perde...
Deixa quieto, tentei mudar para visual a tela que tenho em modo caracter, para deixar um pouco mais bonitinho, mais como não consigo enter como uma GUI funciona, vou deixar como esta mesmo... rsrsrsr
O minha lógica, velha, que estou acostumado, de ser linear, não se encaixa com as linguagem visuais, por exemplo nesta tela, onde so tenho um GET, tive que por outro GET em branco, somente para conseguir avançar, mesmo como o opção CLIPPER, para usar o ENTER ao inves do TAB, sem o segundo GET, ele o primeiro não e validado.
Como faço tudo por tentativa e erro, devido as minhas limitações, me baseio em exemplos que colho aqui no forum, mais como cada um tem sua logica, as vezes fica dificil de enter.
Agradeço sua atenção.
GilbertoSilverio
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Janela temporaria
Ola!
Como eu disse, é mais fácil mudar para a leitora teclar enter no final (vem dessa forma de fábrica), alguém alterou a sua leitora para não teclar <enter> ai.
Se usar a leitora no "prompt" via "CMD" vai entender o que estou explicando.
Deverá aparecer o código da forma em anexo se o enter estiver ativo;
Saudações,
Itamar M. Lins Jr.
Como eu disse, é mais fácil mudar para a leitora teclar enter no final (vem dessa forma de fábrica), alguém alterou a sua leitora para não teclar <enter> ai.
Se usar a leitora no "prompt" via "CMD" vai entender o que estou explicando.
Deverá aparecer o código da forma em anexo se o enter estiver ativo;
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Janela temporaria
Ola!
Mas na DIALOG o ultimo get não é validado "Hwgui 2.20", sua rotina só tem 1get. Ai usamos no ultimo get, mais um para validar, "GET fantasma", sem nada(vazio)! somente para validar o anterior.
Por isso as linguagens visuais tem "ON GETFOCUS", "ON LOSTFOCUS"..., que é a mesma coisa do clipper "WHEN" e "VALID" respectivamente.
E tem também mais esse; Que pode chamar uma função, na medida que pressionar uma tecla.
Faça assim:
Saudações,
Itamar M. Lins Jr.
Isso é normal porque é validado pelo foco no "objeto" isso é do "OS", Sistema Operacional, felizmente ou infelizmente, sair do foco, é sair do get.O minha lógica, velha, que estou acostumado, de ser linear, não se encaixa com as linguagem visuais, por exemplo nesta tela, onde so tenho um GET, tive que por outro GET em branco, somente para conseguir avançar, mesmo como o opção CLIPPER, para usar o ENTER ao inves do TAB, sem o segundo GET, ele o primeiro não e validado.
Mas na DIALOG o ultimo get não é validado "Hwgui 2.20", sua rotina só tem 1get. Ai usamos no ultimo get, mais um para validar, "GET fantasma", sem nada(vazio)! somente para validar o anterior.
Por isso as linguagens visuais tem "ON GETFOCUS", "ON LOSTFOCUS"..., que é a mesma coisa do clipper "WHEN" e "VALID" respectivamente.
Código: Selecionar todos
#xcommand @ <x>,<y> GET [ <oEdit> VAR ] <vari> ;
...
[ WHEN <bGfocus> ] ;
[ VALID <bLfocus> ] ;
Código: Selecionar todos
[ ON KEYDOWN <bKeyDown>] ;
Código: Selecionar todos
@ 28,35 GET oEt2 VAR cEt2 SIZE 200,26
//mude para
@ 28,35 GET oEt2 VAR cEt2 SIZE 0,0
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.