CONTROLE DO GET .. por "< >" no alguns campos determinados.
Moderador: Moderadores
- deividdjs
- Usuário Nível 3

- Mensagens: 377
- Registrado em: 19 Set 2006 09:39
- Localização: Foz do Iguaçu / Pr
CONTROLE DO GET .. por "< >" no alguns campos determinados.
Boa tarde amigos...
sei que para muitos aqui é moleza ... tenho uma duvida ..
como faço para em um cadastro de clientes por exemplo, quando chego em um GET onde esse campo eu posso abrir uma base de dados para trazer alguns dados para preecher este campo apareceça nesses campo "< >" pra identificar que nestes campos o usuario tem a opcao de chamar a base de dados ...
EXEMPLO:
CODIGO VENDEDOR: <[___________]>
alguem tem ideia de como posso fazer isso ??
Att,
Deivid Souza
sei que para muitos aqui é moleza ... tenho uma duvida ..
como faço para em um cadastro de clientes por exemplo, quando chego em um GET onde esse campo eu posso abrir uma base de dados para trazer alguns dados para preecher este campo apareceça nesses campo "< >" pra identificar que nestes campos o usuario tem a opcao de chamar a base de dados ...
EXEMPLO:
CODIGO VENDEDOR: <[___________]>
alguem tem ideia de como posso fazer isso ??
Att,
Deivid Souza
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
CONTROLE DO GET .. por "< >" no alguns campos determinados.
Vc pode colocar isso pelo say, vc pode usar as clausulas when e valid para rodar uma rotina sua, sempre que entrar no campo e sair deles também.
Metodos:
Forma 2
Forma 3
Metodos:
Código: Selecionar todos
xCampo1=space(10)
xCampo2=space(10)
xCampo3=space(10)
clear
set delimiters to '[]'
@ 10,10 say "Campo 1: " get xCampo1
set delimiters on
@ 12,10 say "Campo 2: " get xCampo2
set delimiters off
@ 13,10 say "Campo 3: " get xCampo3
read
quit
Código: Selecionar todos
xCampo1=space(10)
xCampo2=space(10)
xCampo3=space(10)
clear
@ 10,10 say "Campo 1: " get xCampo1
@ 12,10 say "Campo 2: [" get xCampo2;@ row(),col()+1 say ']'
@ 13,10 say "Campo 3: " get xCampo3
read
quitCódigo: Selecionar todos
xCampo1=space(10)
xCampo2=space(10)
xCampo3=space(10)
clear
@ 10,10 say "Campo 1: " get xCampo1
@ 12,10 say "Campo 2: " get xCampo2 when show_delimiters() valid hihe_delimiters()
@ 13,10 say "Campo 3: " get xCampo3
read
quit
function show_delimiters()
@ 12,19 say '['+space(len(xCampo2))+']'
return .t.
function hihe_delimiters()
@ 12,19 say ' '+space(len(xCampo2))+' '
return .t.- mauricioportela
- Usuário Nível 2

- Mensagens: 95
- Registrado em: 29 Jul 2016 04:22
- Localização: Vitoria da Conquista/Bahia
CONTROLE DO GET .. por "< >" no alguns campos determinados.
Ola!
Você quer um tipo de combobox/listbox?
Tente usar o GET LISTBOX: https://harbour.github.io/doc/clc53.htm ... istbox-cmd
Att.
Mauricio
Você quer um tipo de combobox/listbox?
Tente usar o GET LISTBOX: https://harbour.github.io/doc/clc53.htm ... istbox-cmd
Att.
Mauricio
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
CONTROLE DO GET .. por "< >" no alguns campos determinados.
Pelo visto ele só pediu mesmo o destaque, do que tem dados, o combox no get e listbox são bem limitados, ainda mais se forem preenchidos com dados de outras tabelas.
- mauricioportela
- Usuário Nível 2

- Mensagens: 95
- Registrado em: 29 Jul 2016 04:22
- Localização: Vitoria da Conquista/Bahia
CONTROLE DO GET .. por "< >" no alguns campos determinados.
ola!
eu entendi que ele queria algo como um campo de UF - por exemplo. Assim ele poderia jogar os dados de uma tabela no array. Ou, um filtro de um determinado tipo de registro.
Enfim, tentei ajudar!
Att.
Mauricio
eu entendi que ele queria algo como um campo de UF - por exemplo. Assim ele poderia jogar os dados de uma tabela no array. Ou, um filtro de um determinado tipo de registro.
Enfim, tentei ajudar!
Att.
Mauricio
- deividdjs
- Usuário Nível 3

- Mensagens: 377
- Registrado em: 19 Set 2006 09:39
- Localização: Foz do Iguaçu / Pr
CONTROLE DO GET .. por "< >" no alguns campos determinados.
boa noite vagucs
exatamente isso que eu precisava .. essa forma 3 ficou excelente ... aí apartir da sua ajuda ... eu queria fazer uma função generica para usar em todos os meus gets que chama a base de dados ... como eu faço para contar os caracteres do ultimo comando "SAY" para posicionar o delimitador ...
da forma q estou pretendendo fazer ..
queria usar as funções @ row(),col() pra contar as colunas depois do @say que vou delimitar .. como poderia fazer isso
Forma 3
Muito obrigado ... abraço!
exatamente isso que eu precisava .. essa forma 3 ficou excelente ... aí apartir da sua ajuda ... eu queria fazer uma função generica para usar em todos os meus gets que chama a base de dados ... como eu faço para contar os caracteres do ultimo comando "SAY" para posicionar o delimitador ...
da forma q estou pretendendo fazer ..
Código: Selecionar todos
@15,41 say "Vendedor:" get c_codvend picture "9999" WHEN ATIVA_TABVEN() .AND. show_delimiters(c_codvend);
VALID EVAL({||c_codvend := Strzero(VAL(c_codvend),4), .T.}) .AND. VER_VEND() .AND. hihe_delimiters(c_codvend)
queria usar as funções @ row(),col() pra contar as colunas depois do @say que vou delimitar .. como poderia fazer isso
Código: Selecionar todos
///------------------------------------------------------------------------------------------------------------------------------------------
// delimitador de campos com base de dados
//------------------------------------------
function show_delimiters(var)
@15,50 say '<'+space(len(var))+'>'
//@ row(),col() say '<'+space(len(var))+'>' // ????? aqui
return .t.
function hihe_delimiters(var)
@15,50 say ' '+space(len(var))+' '
//@ row(),col() say '<'+space(len(var))+'>' // ????? aqui
return .t.
Forma 3
Código: Selecionar todos
xCampo1=space(10)
xCampo2=space(10)
xCampo3=space(10)
clear
@ 10,10 say "Campo 1: " get xCampo1
@ 12,10 say "Campo 2: " get xCampo2 when show_delimiters() valid hihe_delimiters()
@ 13,10 say "Campo 3: " get xCampo3
read
quit
function show_delimiters()
@ 12,19 say '['+space(len(xCampo2))+']'
return .t.
function hihe_delimiters()
@ 12,19 say ' '+space(len(xCampo2))+' '
return .t.Muito obrigado ... abraço!
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
CONTROLE DO GET .. por "< >" no alguns campos determinados.
A forma mais pratica seria isso.
Poderia mudar para row e col, mas ai teria que ficar compensando sempre de acordo com a direção (cima ou baixa) da navegação entre os campos. Isso pode te levar a resultados inesperados principalmente se o usuário clicar no campo com o mouse. Então melhor assim, outra coisa, é que vc pode usar o getlist, mas na hora da criação do get, o ultimo elemento sempre será o campo anterior, e pode também levar a resultados inesperados.
Código: Selecionar todos
xCampo1=space(10)
xCampo2=space(10)
xCampo3=space(10)
clear
@ 10,10 say "Campo 1: " get xCampo1
@ 12,10 say "Campo 2: " get xCampo2 when show_delimiters(12,19,len(xCampo2)) valid hide_delimiters(12,19,len(xCampo2))
@ 13,10 say "Campo 3: " get xCampo3
read
quit
function show_delimiters(l,c,s)
@ l,c say '['+space(s)+']'
return .t.
function hide_delimiters(l,c,s)
@ l,c say ' '+space(s)+' '
return .t.
- deividdjs
- Usuário Nível 3

- Mensagens: 377
- Registrado em: 19 Set 2006 09:39
- Localização: Foz do Iguaçu / Pr
CONTROLE DO GET .. por "< >" no alguns campos determinados.
vagucs escreveu:A forma mais pratica seria isso.
Poderia mudar para row e col, mas ai teria que ficar compensando sempre de acordo com a direção (cima ou baixa) da navegação entre os campos. Isso pode te levar a resultados inesperados principalmente se o usuário clicar no campo com o mouse. Então melhor assim, outra coisa, é que vc pode usar o getlist, mas na hora da criação do get, o ultimo elemento sempre será o campo anterior, e pode também levar a resultados inesperados.Código: Selecionar todos
xCampo1=space(10) xCampo2=space(10) xCampo3=space(10) clear @ 10,10 say "Campo 1: " get xCampo1 @ 12,10 say "Campo 2: " get xCampo2 when show_delimiters(12,19,len(xCampo2)) valid hide_delimiters(12,19,len(xCampo2)) @ 13,10 say "Campo 3: " get xCampo3 read quit function show_delimiters(l,c,s) @ l,c say '['+space(s)+']' return .t. function hide_delimiters(l,c,s) @ l,c say ' '+space(s)+' ' return .t.
SIMPLISMENTE TOP!!! IRMÃO ... FICOU DO JEITO QUE EU PRECISAVA MESMO ... MUITO OBRIGADO !!
VOCÊS MANDAM MUITO !!
FORTE ABRAÇO!!
FIQUEM COM DEUS!
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
CONTROLE DO GET .. por "< >" no alguns campos determinados.
Olá!
Sugestão para deixar o processo genérico:
Sugestão para deixar o processo genérico:
Código: Selecionar todos
Procedure Main()
LOCAL xCampo1 := space(10)
LOCAL xCampo2 := space(10)
LOCAL xCampo3 := space(10)
LOCAL xCampo4 := .00
LOCAL xCampo5 := Date(), GetList := {}
Set Date British
Set Century On
Setmode(25,80)
CLS
@ 10,10 say "Campo 1: " get xCampo1
//@ 12,10 say "Campo 2: " get xCampo2 when show_delimiters(12,19,len(xCampo2)) valid hide_delimiters(12,19,len(xCampo2))
@ 12,10 say "Campo 2: " ;
get xCampo2 ;
when GetDelim( GetActive(), "[]" ) ;
valid GetDelim( GetActive(), " " )
@ 13,10 say "Campo 3: " get xCampo3
@ 14,10 say "Campo 4: " ;
get xCampo4 ;
when GetDelim( GetActive(), "[]" ) ;
valid GetDelim( GetActive() )
@ 15,10 say "Campo 5: " ;
get xCampo5 ;
when GetDelim( GetActive(), "[]" ) ;
valid GetDelim( GetActive() )
Read
Wait "Tecle algo..."
RETURN
/*
function show_delimiters(l,c,s)
@ l,c say '['+space(s)+']'
return .t.
function hide_delimiters(l,c,s)
@ l,c say ' '+space(s)+' '
return .t.
*/
FUNCTION GetDelim( oGet, cDelim )
LOCAL cPict
cDelim := If( cDelim == NIL, " ", cDelim )
With Object oGet
cPict := If( :picture == NIL, "", :picture )
@ :row, :col - 1 Say Left( cDelim, 1 )
@ :row, :col + Len( Transform( :varGet(), cPict ) ) Say Right( cDelim, 1 )
End With
RETURN .T.[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- deividdjs
- Usuário Nível 3

- Mensagens: 377
- Registrado em: 19 Set 2006 09:39
- Localização: Foz do Iguaçu / Pr
CONTROLE DO GET .. por "< >" no alguns campos determinados.
alxsts escreveu:Olá!
Sugestão para deixar o processo genérico:Código: Selecionar todos
Procedure Main() LOCAL xCampo1 := space(10) LOCAL xCampo2 := space(10) LOCAL xCampo3 := space(10) LOCAL xCampo4 := .00 LOCAL xCampo5 := Date(), GetList := {} Set Date British Set Century On Setmode(25,80) CLS @ 10,10 say "Campo 1: " get xCampo1 //@ 12,10 say "Campo 2: " get xCampo2 when show_delimiters(12,19,len(xCampo2)) valid hide_delimiters(12,19,len(xCampo2)) @ 12,10 say "Campo 2: " ; get xCampo2 ; when GetDelim( GetActive(), "[]" ) ; valid GetDelim( GetActive(), " " ) @ 13,10 say "Campo 3: " get xCampo3 @ 14,10 say "Campo 4: " ; get xCampo4 ; when GetDelim( GetActive(), "[]" ) ; valid GetDelim( GetActive() ) @ 15,10 say "Campo 5: " ; get xCampo5 ; when GetDelim( GetActive(), "[]" ) ; valid GetDelim( GetActive() ) Read Wait "Tecle algo..." RETURN /* function show_delimiters(l,c,s) @ l,c say '['+space(s)+']' return .t. function hide_delimiters(l,c,s) @ l,c say ' '+space(s)+' ' return .t. */ FUNCTION GetDelim( oGet, cDelim ) LOCAL cPict cDelim := If( cDelim == NIL, " ", cDelim ) With Object oGet cPict := If( :picture == NIL, "", :picture ) @ :row, :col - 1 Say Left( cDelim, 1 ) @ :row, :col + Len( Transform( :varGet(), cPict ) ) Say Right( cDelim, 1 ) End With RETURN .T.
BOM DIA Alexandre..
testei as duas sugestões dos amigos e realmente essa sua função ficou bem melhor ... mais generica !! top ..
Obrigado pela ajuda ... show!
Deus abençoe vcs .. forte abraço!
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
CONTROLE DO GET .. por "< >" no alguns campos determinados.
Muito bom cara, eu fiz o fonte correndo aqui, nem lembrei do getactive, top.
Parabéns.
Parabéns.
- deividdjs
- Usuário Nível 3

- Mensagens: 377
- Registrado em: 19 Set 2006 09:39
- Localização: Foz do Iguaçu / Pr
CONTROLE DO GET .. por "< >" no alguns campos determinados.
Capaz amigo ... ambas funcionaram muito bem ... agradeço d+ a ajuda de vcs .. ficou show ... forte abraco..
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX