Digitacao no get.....
Moderador: Moderadores
-
clebermano
- Usuário Nível 3

- Mensagens: 187
- Registrado em: 03 Out 2004 12:39
- Contato:
Digitacao no get.....
Ola, amigos clippeiros, boa tarde a todos.
Tenho a seguinte situacao.
tenho 1 get onde cliente digita o codigo do produto, eu precisaria que este get identificasse instataneamente, quando eu digitasse uma letra.
Por exemplo, supomos que o cliente esteja passando produtos atraves do codigo de barras ean 13- neste get, e quando ele quissese cancelar um item ele apenas digitaria por exemplo 10, que eh o numero de ordem do produto, e a letra C, para cancelar, o item referente a ordem. Ficaria assim.
12C
? ITEM 12 CANCELADO
entao o get continuaria, por exemplo se fosse um ean, como abaixo apareceia o produto.
78910010000103 - Leite condensado moca 395g
Certo?
Se puderem me ajudar agradeco desde ja.
clebermanorp@yahoo.com.br
Tenho a seguinte situacao.
tenho 1 get onde cliente digita o codigo do produto, eu precisaria que este get identificasse instataneamente, quando eu digitasse uma letra.
Por exemplo, supomos que o cliente esteja passando produtos atraves do codigo de barras ean 13- neste get, e quando ele quissese cancelar um item ele apenas digitaria por exemplo 10, que eh o numero de ordem do produto, e a letra C, para cancelar, o item referente a ordem. Ficaria assim.
12C
? ITEM 12 CANCELADO
entao o get continuaria, por exemplo se fosse um ean, como abaixo apareceia o produto.
78910010000103 - Leite condensado moca 395g
Certo?
Se puderem me ajudar agradeco desde ja.
clebermanorp@yahoo.com.br
-
Alessandro
- Usuário Nível 3

- Mensagens: 141
- Registrado em: 07 Jul 2004 09:39
- Localização: Santo Antonio da Platina-PR
Veja bem se entendi o que quer fazer:
Você quer que no get seja feita uma validação.
Exemplo:
@ lin,col get CODIGO valid VER_COD(@ODIGO)
function VER_COD(CODIGO)
If // aqui vc testa se o EAN13 é válido
se for
return .T.
else
verifique o que foi digitado, como se tiver a letra "C" na string
pegue o que vem antes dela e exclua o item correspondente.
retunr .F. // para permanecer no get
endif
Espero que tenha ajudado.
OK
Você quer que no get seja feita uma validação.
Exemplo:
@ lin,col get CODIGO valid VER_COD(@ODIGO)
function VER_COD(CODIGO)
If // aqui vc testa se o EAN13 é válido
se for
return .T.
else
verifique o que foi digitado, como se tiver a letra "C" na string
pegue o que vem antes dela e exclua o item correspondente.
retunr .F. // para permanecer no get
endif
Espero que tenha ajudado.
OK
Complementando o código proposto pelo colega
Até logo.
Marcelo
Código: Selecionar todos
function VER_COD(CODIGO)
If // aqui vc testa se o EAN13 é válido
se for
return(.T.)
else
TEM_ALFA=AT("C",CODIGO)
IF TEM_ALFA<>0
NUM_ITEM=SUBSTR(CODIGO,1,TEM_ALFA-1) // Talvez precise converter para numérico aí vai depender do seu programa
// Continua a rotina com a exclusão do item
ELSE
// NÃO TEM O CARACTERE "C" NO CÓDIGO DIGITADO
ENDIF
endif
Marcelo
-
Cleiton Fidelis
- Usuário Nível 2

- Mensagens: 81
- Registrado em: 06 Jul 2004 09:44
- Localização: Divinopolis MG
Amigo, talvez seria mais facil voce criar uma funcao para cancelar/alterar sei la.
Tipo pressionada F5 vc altera... , pode ser que o usuario, um novato por exemplo coloque acidentalmente a letra C e de um <<enter>>, ou ate mesmo o usuario mais avancado.... , o teclado pode agarrar.. sei la..
Creio que uma funcao seria de maior valia.
Abracos.
Cleiton Fidelis
Divinopolis MG
Tipo pressionada F5 vc altera... , pode ser que o usuario, um novato por exemplo coloque acidentalmente a letra C e de um <<enter>>, ou ate mesmo o usuario mais avancado.... , o teclado pode agarrar.. sei la..
Creio que uma funcao seria de maior valia.
Abracos.
Cleiton Fidelis
Divinopolis MG
-
clebermano
- Usuário Nível 3

- Mensagens: 187
- Registrado em: 03 Out 2004 12:39
- Contato:
digitacao no get...
amigo cleiton o cliente, nao quer um f5 pq ele acha que fica mto demorado o processo, tipo f5 codigo do produto + enter, ele quer tipo a ordem + a letra e pronto ta cancelado.
A proposito a funcao acima funcionou mas eu preciso dar enter, eu preciso que assim que eu tecle a letra C, ele ja identifique automatico e ja cancele o item...
tem jeito????
A proposito a funcao acima funcionou mas eu preciso dar enter, eu preciso que assim que eu tecle a letra C, ele ja identifique automatico e ja cancele o item...
tem jeito????
-
clebermano
- Usuário Nível 3

- Mensagens: 187
- Registrado em: 03 Out 2004 12:39
- Contato:
-
Jorge Adourian
- Usuário Nível 2

- Mensagens: 95
- Registrado em: 05 Jul 2004 23:38
- Localização: São Paulo-SP-Brasil
- Contato:
Bom eu não uso assim, mas no caso de quem fez a pergunta é só o cara digitar C e abrir um campo para digitar a linha do produto, acho isso muito fora de padrão.
No meu caso eu utilizo as setas para navegar entre os produtos e deletar o produto que estiver posicionado e uma pergunta, para confirmar a exclusão não faz mau a ninguem ... hehehe
E outra a pressa é inimiga da perfeição se ele quer ganhar tempo, vai perder dinheiro no minimo pode deletar um produto errado e bom, por ai vai.... isso na minha opnião é claro.
No meu caso eu utilizo as setas para navegar entre os produtos e deletar o produto que estiver posicionado e uma pergunta, para confirmar a exclusão não faz mau a ninguem ... hehehe
E outra a pressa é inimiga da perfeição se ele quer ganhar tempo, vai perder dinheiro no minimo pode deletar um produto errado e bom, por ai vai.... isso na minha opnião é claro.
-
clebermano
- Usuário Nível 3

- Mensagens: 187
- Registrado em: 03 Out 2004 12:39
- Contato:
No meu caso...
Eu utilizo um DBedit() e vou navegando entre os produtos aí escolho a ação que desejar, também não gosto muito da forma que está sendo usada, mas o colega pediu uma sugestão de como fazer, pois bem, aí está ela... Apesar de não achar correta não me cabe julgar, como o colega mesmo disse nós não conhecemos o cliente dele, se ele já orientou e mesmo assim o cara insitiu em usar desta forma, paciência, quem tá pagando tem o direito de escolher, além do mais não é nada tão absurdo assim, é meio estranho mas não é absurdo.
Até logo.
Marcelo
Eu utilizo um DBedit() e vou navegando entre os produtos aí escolho a ação que desejar, também não gosto muito da forma que está sendo usada, mas o colega pediu uma sugestão de como fazer, pois bem, aí está ela... Apesar de não achar correta não me cabe julgar, como o colega mesmo disse nós não conhecemos o cliente dele, se ele já orientou e mesmo assim o cara insitiu em usar desta forma, paciência, quem tá pagando tem o direito de escolher, além do mais não é nada tão absurdo assim, é meio estranho mas não é absurdo.
Até logo.
Marcelo
No meu caso...
Eu utilizo um DBedit() e vou navegando entre os produtos aí escolho a ação que desejar, também não gosto muito da forma que está sendo usada, mas o colega pediu uma sugestão de como fazer, pois bem, aí está ela... Apesar de não achar correta não me cabe julgar, como o colega mesmo disse nós não conhecemos o cliente dele, se ele já orientou e mesmo assim o cara insitiu em usar desta forma, paciência, quem tá pagando tem o direito de escolher, além do mais não é nada tão absurdo assim, é meio estranho mas não é absurdo.
Até logo.
Marcelo
Eu utilizo um DBedit() e vou navegando entre os produtos aí escolho a ação que desejar, também não gosto muito da forma que está sendo usada, mas o colega pediu uma sugestão de como fazer, pois bem, aí está ela... Apesar de não achar correta não me cabe julgar, como o colega mesmo disse nós não conhecemos o cliente dele, se ele já orientou e mesmo assim o cara insitiu em usar desta forma, paciência, quem tá pagando tem o direito de escolher, além do mais não é nada tão absurdo assim, é meio estranho mas não é absurdo.
Até logo.
Marcelo
-
evolver
- Membro Master

- Mensagens: 189
- Registrado em: 28 Ago 2004 01:02
- Localização: Cruz Alta - RS
- Contato:
Tentou usar a clausula WHEN para isso?
Fica meio complexo mas você pode criar uma função que coleta os dados antes mesmo de haver qualquer digitação no get e pode processar os dados evitando assim que saia errado no get ou mesmo que se venha a cancelar algo que não deveria ser cancelado.
Tou com meu clipper meio enferrujado mas acho que ainda funfa...
tipo
#include "inkey.ch"
x_var=0
@ 00,00 say "Valor?" get x_var pict "99999" when funcao1() valid funcao2()
read
quit
function funcao1()
local ret_var
/*
cria aqui uma funcao que pega letra por letra e usa um case pra dar destino a ela ex:
*/
while .t.
c_press=inkey(0)
do case
case upper(chr(c_press)) = C
//executa funcao de verificacao
if cancelamesmo
//deleta ou marca o que tiver que cancelar
// copia o codigo ean do produto para ret_var ret_var = valor_ean
keyboard ret_var
exit
endif
loop
case isdigit(chr(c_press))
ret_var = ret_var+chr(c_press)
case c_press = K_BACKSPACE
ret_var = left(ret_var,len(ret_var)-1)
case c_press = K_ENTER .or. len(ret_var)=14
keyboard ret_var
exit
endcase
enddo
return .t.
A coisa ficou complexa mas se tu conseguir pegar a idéia pode tornar ela uma bela ferramenta de verificação do dado pra se ter certeza do que vai sair. Pode até mesmo verificar se existe um produto antes de preencher o get com o comando keyboard.
Fica meio complexo mas você pode criar uma função que coleta os dados antes mesmo de haver qualquer digitação no get e pode processar os dados evitando assim que saia errado no get ou mesmo que se venha a cancelar algo que não deveria ser cancelado.
Tou com meu clipper meio enferrujado mas acho que ainda funfa...
tipo
#include "inkey.ch"
x_var=0
@ 00,00 say "Valor?" get x_var pict "99999" when funcao1() valid funcao2()
read
quit
function funcao1()
local ret_var
/*
cria aqui uma funcao que pega letra por letra e usa um case pra dar destino a ela ex:
*/
while .t.
c_press=inkey(0)
do case
case upper(chr(c_press)) = C
//executa funcao de verificacao
if cancelamesmo
//deleta ou marca o que tiver que cancelar
// copia o codigo ean do produto para ret_var ret_var = valor_ean
keyboard ret_var
exit
endif
loop
case isdigit(chr(c_press))
ret_var = ret_var+chr(c_press)
case c_press = K_BACKSPACE
ret_var = left(ret_var,len(ret_var)-1)
case c_press = K_ENTER .or. len(ret_var)=14
keyboard ret_var
exit
endcase
enddo
return .t.
A coisa ficou complexa mas se tu conseguir pegar a idéia pode tornar ela uma bela ferramenta de verificação do dado pra se ter certeza do que vai sair. Pode até mesmo verificar se existe um produto antes de preencher o get com o comando keyboard.
Sergio "Evolver" Fagundes
CURVE-SE DIANTE DE MIM SER INSIGNIFICANTE, POIS EU SOU ROOT
Só respondo em PVT perguntas relativas ao que eu faço. Qualquer outra dúvida favor postar no fórum.
Peço aos veteranos que antes de responder a uma pergunta repetida dêem uma pesquisada e instruam a quem perguntou a fazer o mesmo.
CURVE-SE DIANTE DE MIM SER INSIGNIFICANTE, POIS EU SOU ROOT
Só respondo em PVT perguntas relativas ao que eu faço. Qualquer outra dúvida favor postar no fórum.
Peço aos veteranos que antes de responder a uma pergunta repetida dêem uma pesquisada e instruam a quem perguntou a fazer o mesmo.
