retornar um GET

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Vinicius
Usuário Nível 1
Usuário Nível 1
Mensagens: 41
Registrado em: 09 Fev 2008 15:18
Localização: SÃO PAULO

retornar um GET

Mensagem por Vinicius »

Boa noite galera!!

Um comando GET seguido de um READ, não consigo retornar ao GET para altera-lo, o usuário tem que ir até o final da rotina e retornar na mesma para alterar o GET.

Exemplo:
@ 10,50 get kcod pict "9999"
read

vlu
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Se você colocar dentro de uma malha não resolve? Uma vez que saia do READ, pra retornar, só se você forçar o retorno por uma malha. Um exemplo bem tosco:

Código: Selecionar todos

@ 10,50 get kcod pict "9999"
while .t.
   read
   if LastKey() = 27
      exit
   end
end
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Mensagem por Toledo »

Vinícius, não sei se entendi direito o seu problema, mas você tem um GET com um READ logo em seguida e depois deste existe outros vários GETs, então para retornar ao primeiro GET tem que passar por todos os outros... é isto?

Se for, coloque o READ somente depois do último GET, assim você poderá navegar entre todos os GETs.

Caso você precise validar alguma coisa no primeiro GET, monte um função para isto e coloque na cláusula VALID do GET.

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
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Complementando:

Uma coisa que causa confusão é a pessoa pensar que o comando GET controla a navegação. Isso não é verdade. O GET serve apenas para configurar a entrada de dados, cujos parâmetros são armazenados na matriz de trabalho. Quem faz o controle da navegação, validação da entrada, etc é o comando READ.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Vinicius
Usuário Nível 1
Usuário Nível 1
Mensagens: 41
Registrado em: 09 Fev 2008 15:18
Localização: SÃO PAULO

Mensagem por Vinicius »

Toledo,

Tenho um pedido de venda que contem 10 linhas, sendo:
codigo do produto, seguido de um GET e READ para verificação do produto.
Depois que o usuário aperta enter após o GET, não consegue retornar ao GET para digitar novamente o codigo do produto.
Terias alguma solução para o problema?

Obrigado
Vinicius
Usuário Nível 1
Usuário Nível 1
Mensagens: 41
Registrado em: 09 Fev 2008 15:18
Localização: SÃO PAULO

Mensagem por Vinicius »

Bom dia, Maligno!

Como disse, tenho um pedido com 10 linhas, e a cada linha preciso de um GET seguido de um READ que abre um outro arquivo para verificação do GET, retorna ao pedido e não consigo voltar ao GET. Como disse isto se repete nas 10 linhas.

Obrigado
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Bom dia, faça como o Toledo explicou lá em cima:
faça esta verificação com o uso da clausula "valid" ou "when" e use apenas um read.

@ 00,00 get bla valid verifica(argumento)
@ 01,00 get blabla valid verifica(argumento)
@ 02,00 get blablabla valid verifica(argumento)
@ 03,00 get blablablabla valid verifica(argumento)
read

Function Verifica(arg)
if !dbseek(arg)
return .f.
else
return .t.
endif
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Vinicius,

Eu acho o seu problema se resolve colocando apenas UM READ em vários GETs. Daí sim você irá poder navegar entre GETs. Colocar vários READ, numa série de GETs, iria impedir que retornasse (caso pressionado setinha para cima) ao GET anterior. Seria isso ?.

As validações faça através de funções em cada GET VALID CHECA_1() (por exemplo), assim você conseguiria eliminar os READs excessivos e deixar apenas um.

Código: Selecionar todos

@ 01,00 GET VAR1 VALID CHECA1(VAR1)
@ 02,00 GET VAR2 VALID CHECA1(VAR2)
@ 03,00 GET VAR3 VALID CHECA1(VAR3)
READ
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Caraca, isso é o que eu chamo de comunhão espiritual.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
ederxc
Usuário Nível 4
Usuário Nível 4
Mensagens: 619
Registrado em: 15 Set 2006 08:40
Localização: Pedreira -SP-

Mensagem por ederxc »

alaminojunior escreveu:Caraca, isso é o que eu chamo de comunhão espiritual.



QUE LINNNNDU ;)
C:\Xharbour\Xdev\Fw\VSX
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

QUE LINNNNDU Piscando
Liga não gente, ele me ama. {>
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

alaminojunior escreveu:Caraca, isso é o que eu chamo de comunhão espiritual.
Pois é... hehe agora que eu ví. Postamos a mesma idéia no mesmo minuto. Mas acho que você Alaminio ganhou com a sua postagem porque você está mais perto daí de São Paulo que eu... hihihi

ImagemAhhh e lembrem que eu tenho o poder de adivinhar as coisas...
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Falow Merlin
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Vinicius escreveu:Tenho um pedido de venda que contem 10 linhas, sendo:
codigo do produto, seguido de um GET e READ para verificação do produto.
Depois que o usuário aperta enter após o GET, não consegue retornar ao GET para digitar novamente o codigo do produto.
Terias alguma solução para o problema?
Acho que a proposta do AlaminoJunior pode muito bem funcionar. Mas tenho a impressão de que você, ao voltar ao GET do código talvez precise limpar as variáveis subsequentes. Fique atento a isso.

Agora, se não der certo, há ainda a alternativa de fazer uma gambiarra de sete cordas, por meio de semáforos. Mas tente primeiro o que foi sugerido. Talvez dê certo.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
apogestal
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 30 Jan 2008 09:38
Localização: Pontes gestal

Mensagem por apogestal »

Tente usar um LOOP
Responder