quando usa-se get para matriz o getactive() idetifica perfeitamete o nome da 'var' que esta ativa no mometo, mas como achar a posicao desta matriz? tipo:
@ ..... get aMatriz[1,i] ......
@ ..... get aMatriz[2,i] ......
@ ..... get aMatriz[2,i] ......
read
vamos supor que o get ativo seje da 2 linha como faço para saber isso pelo getactive?
como identificar o get de uma 'var' matriz
Moderador: Moderadores
- juniorcamilo
- Usuário Nível 3

- Mensagens: 343
- Registrado em: 10 Nov 2006 09:12
- Localização: Pará
Use o método SubScript para obter o número de ordem do elemento sendo editado. Veja o exemplo:
A função GetActive lhe dá o objeto em edição. Através dele você tem uma série de informações a respeito da variável atualmente focalizada, inclusive o nome completo desta. E fazem parte do nome os índices das dimensões do elemento dentro da matriz. A partir daí é só você recuperar aquele que deseja. No exemplo eu peguei o primeiro índice diretamente.
Código: Selecionar todos
priva nOrder
@ 1,10 get aMatriz[1,i] when Order()
@ 2,10 get aMatriz[2,i] when Order()
@ 3,10 get aMatriz[3,i] when Order()
read
function Order()
nOrder := LTrim(Str(GetActive():SubScript[1]))
return .t.[]'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!
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!
- juniorcamilo
- Usuário Nível 3

- Mensagens: 343
- Registrado em: 10 Nov 2006 09:12
- Localização: Pará
Obrigado maligno
Obrigado Maligno, legal mesmo, onde eu aprendo mais sobre estes assuntos de 'objeto' 'block' tanto de getlist quanto de browse?
No NG do Clipper tem tudo o que é necessário. Mas também ajuda dar uma bisbilhotada nos vários fontes existentes na pasta de instalação do Clipper.
[]'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!
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!
Maligno,
Aproveitando o gancho: qdo eu faço 10 GETs, o foco é iniciado sobre o GET1, certo? E se eu quiser mudar isso, mudar o foco? É possível? Via When?
Por ex, eu tenho 10 GETs. Aí, no GET6, o cidadão altera uma info e, como efeito, tenho que reconstruir a tela e os GETs do 7 pra baixo (um exemplo comum é o "física/jurídica" versus "CPNJ/CPF").
No meu caso, eu boto os GETs dentro de um DO/WHIL, só saio com ESC ou com F10Grava_e_Sai. Então, a cada vez que o foco passa pelo GET6, checo se o tipo mudou: se positivo, faço CLEA GETS e encho o keyb com "n" chr(13). Com isso, saio do READ, volto ao início do DO/WHIL, refaço os GETs/READ e o cursor pára lá no GET7...
Pq uso o DO/WHIL? O usuário pode ficar navegando indefinidamente entre os GETs (ENTER ou Setas ou PgDn ou...). Quando terminar a edição, F10 ou ESC.
(concordo que a minha solução é esdrúxula! eh eh eh)
Aproveitando o gancho: qdo eu faço 10 GETs, o foco é iniciado sobre o GET1, certo? E se eu quiser mudar isso, mudar o foco? É possível? Via When?
Por ex, eu tenho 10 GETs. Aí, no GET6, o cidadão altera uma info e, como efeito, tenho que reconstruir a tela e os GETs do 7 pra baixo (um exemplo comum é o "física/jurídica" versus "CPNJ/CPF").
No meu caso, eu boto os GETs dentro de um DO/WHIL, só saio com ESC ou com F10Grava_e_Sai. Então, a cada vez que o foco passa pelo GET6, checo se o tipo mudou: se positivo, faço CLEA GETS e encho o keyb com "n" chr(13). Com isso, saio do READ, volto ao início do DO/WHIL, refaço os GETs/READ e o cursor pára lá no GET7...
Pq uso o DO/WHIL? O usuário pode ficar navegando indefinidamente entre os GETs (ENTER ou Setas ou PgDn ou...). Quando terminar a edição, F10 ou ESC.
(concordo que a minha solução é esdrúxula! eh eh eh)
É sempre possível. Mas a melhor forma não é pela cláusula WHEN. O melhor é acrescentar um parâmetro no comando READ, indicando um ponto de start. Isso implica em alterar o GETSYS, claro. Mas se você estiver disposto, não é tão complicado quanto parece.Eolo escreveu:Aproveitando o gancho: qdo eu faço 10 GETs, o foco é iniciado sobre o GET1, certo? E se eu quiser mudar isso, mudar o foco? É possível? Via When?
Sei como é. Eu implementei o conceito de grupos no meu GETSYS. No exemplo da pessoa física/jurídica, os campos SEXO, CPF e PROFISSÃO pertencem a um grupo, enquanto que CNPJ e ATIVIDADE pertencem a outro. Quando seleciono qual pessoa quero, o GETSYS "filtra" a lista e redesenha a lista, mostrando apenas os campos do grupo selecionado. Na teoria é super-simples, mas alterar o GETSYS pra ter isso dá um bocado de trabalho. Mas seria o ideal.Por ex, eu tenho 10 GETs. Aí, no GET6, o cidadão altera uma info e, como efeito, tenho que reconstruir a tela e os GETs do 7 pra baixo (um exemplo comum é o "física/jurídica" versus "CPNJ/CPF").
Esdrúxulo é o GETSYS padrão. Uma coisa muito mal feita. Poderiam ter feito um esforço pra tornar a vida do programa Clipper um pouco melhor. Aliás, é como dizem: se é de graça, é porcaria. :[(concordo que a minha solução é esdrúxula! eh eh eh)
[]'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!
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!

