Clipper On Line • Ver Tópico - Como pegar o nome da variavel do get ativo?

Como pegar o nome da variavel do get ativo?

Discussão sobre a linguagem CA-Clipper.

Moderador: Moderadores

 

Como pegar o nome da variavel do get ativo?

Mensagempor romulobonnadio » 05 Out 2012 14:36

Como pegar o nome da variavel do get ativo?
Tentei por ReadVar() => Ele pega o nome da variavel lida atualmente mas nao pega o get ativo.
Tentei por GetFldVar()=> Mas ele me retorna vazio quando uso o Blinker7, no exospace ele me retorna legal e ai galera oque faco agora?
romulobonnadio
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 48
Data de registro: 08 Dez 2009 22:48
Cidade/Estado: Belo Horizonte
Curtiu: 5 vezes
Mens.Curtidas: 0 vez

Como pegar o nome da variavel do get ativo?

Mensagempor Imatech » 05 Out 2012 14:42

Acredito que deseje o conteudo da variavel em edição no objeto get:

Alert( Transform( &( readvar(), NIL ) )


Alert( Transform( GetActive():varGet(), NIL ) )


Alert( Transform( GetActive():name, NIL ) )
Editado pela última vez por Imatech em 05 Out 2012 15:54, no total de 3 vez
M., Ronaldo

by: IMATECH

IMATION TECNOLOGIA
Avatar de usuário

Imatech
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 350
Data de registro: 24 Ago 2010 23:48
Cidade/Estado: Goiânia-GO
Curtiu: 4 vezes
Mens.Curtidas: 27 vezes

Como pegar o nome da variavel do get ativo?

Mensagempor Pablo César » 05 Out 2012 14:58

Como pegar o nome da variavel do get ativo?
Veja exemplo:
cNome:=Space(38)
cTel:=Space(12)
cls
@ 12,00 Get cNome When NomVar()
@ 13,00 Get cTel When NomVar()
Read

Function NomVar()
@ 24,00 Say "Nome da atual variavel: "+PadR(readvar(),54)
Return .t.
Era isto que você precisava ?

Ele pega o nome da variavel lida atualmente mas nao pega o get ativo.
Como assim ? Pode explicar melhor o que você precisa ?
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 de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Como pegar o nome da variavel do get ativo?

Mensagempor romulobonnadio » 05 Out 2012 15:41

Ex.:

@ ... get var1
CarregVar()
@ ... get var2
CarregVar()
@ ... get var3
CarregVar()
read

Function carregVar()
&GetFldVar() := "teste" // Anteriormente usando exospace ele pegava a variavel Var1 e preenchia o valor teste
// Atualmente usando blinker o GetFldVar nao retorna o nome da variavel, pois ela ainda nao esta ativa no get neste momento.
Return .t.

Esse seria o meu problema atual, pois terei que alterar todo meu sistema para colocar esta funcao dentro do Where, mesmo assim essa funcao deveria ser executada antes do where e nao dentro do where, pois utilizo ela para escrever em tela as descricoes dos campos codificados ex.:
Cliente: 000007 Romulo Bonnadio
Acima eu uso o Say para o Label Cliente
Uso o get para visualizar o codigo
e o nome do cliente geralmente eh visualizado em tela atraves de uma funcao que busca no banco, localiza a linha e coluna do get anteriormente adicionado em tela e imprime o nome.

Sera que fui claro?
romulobonnadio
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 48
Data de registro: 08 Dez 2009 22:48
Cidade/Estado: Belo Horizonte
Curtiu: 5 vezes
Mens.Curtidas: 0 vez

Como pegar o nome da variavel do get ativo?

Mensagempor Pablo César » 05 Out 2012 16:00

Sera que fui claro?
Eu estou tentando ajudar-lhe e esse não é um tom amistoso. Senão for claro ou eu não entender, desculpe: mas precisará de mais paciência !

Desculpe, mas na minha opinião essa sequência de código:
Ex.:

@ ... get var1
CarregVar()
@ ... get var2
CarregVar()
@ ... get var3
CarregVar()
read
Não está correta. A função CarregVar() como você a disponibilizou, não terá efeito algum, nem está vinculada com GET algum... apenas chama a função nas diferentes linhas, mas isso não quer dizer que tem vínculo algum.

Outra coisa, você fala da função GetFldVar() e esta função precisa de parâmetro, que seria o número de sequência dos GETs.

Anteriormente usando exospace ele pegava a variavel Var1 e preenchia o valor teste
// Atualmente usando blinker o GetFldVar nao retorna o nome da variavel, pois ela ainda nao esta ativa no get neste momento
Posso eu estar errado, mas na minha modesta opinião, isso que você está afirmando: não procede. Pois não é o linker que irá fazer a conexão do CarregVar com o Get ativo. Precisa mostrar o código ou parte dele para entendermos melhor a situação.
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 de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Como pegar o nome da variavel do get ativo?

Mensagempor romulobonnadio » 05 Out 2012 16:08

Eu estou tentando ajudar-lhe e esse não é um tom amistoso. Senão for claro ou eu não entender, desculpe: mas precisará de mais paciência !

Amigo qdo escrevi acima "Sera que fui claro", desculpe mas nao foi falta de paciencia nem mesmo com intuito de lhe responder mau nao, foi simplesmente uma pergunta se eu consegui explicar meu problema a vc. Em hipotese alguma eu teria o porque de lhe tratar mau, ate mesmo porque sua intencao tem sido a melhor.
Desculpe!
romulobonnadio
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 48
Data de registro: 08 Dez 2009 22:48
Cidade/Estado: Belo Horizonte
Curtiu: 5 vezes
Mens.Curtidas: 0 vez

Como pegar o nome da variavel do get ativo?

Mensagempor Pablo César » 05 Out 2012 16:11

romulobonnadio escreveu:
Eu estou tentando ajudar-lhe e esse não é um tom amistoso. Senão for claro ou eu não entender, desculpe: mas precisará de mais paciência !

Amigo qdo escrevi acima "Sera que fui claro", desculpe mas nao foi falta de paciencia nem mesmo com intuito de lhe responder mau nao, foi simplesmente uma pergunta se eu consegui explicar meu problema a vc. Em hipotese alguma eu teria o porque de lhe tratar mau, ate mesmo porque sua intencao tem sido a melhor.
Desculpe!
Amigo, desculpas aceitas !

Voltando ao assunto do tópico, para que o seu código fique de forma funcional, você teria que apenas adicionar o when em cada get, só isso. Desta forma:
cls
Store Space(10) to var1,var2,var3
@ 01,01 get var1 when CarregVar()
@ 02,01 get var2 when CarregVar()
@ 03,01 get var3 when CarregVar()
Read

Function CarregVar()
@ 24,00 Say PadC(GETFLDVAR(),80) Color "N/W"
Return .t.
Só pra informação: A função GETFLDVAR() é da CT.LIB.

Espero ter ajudado.
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 de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Como pegar o nome da variavel do get ativo?

Mensagempor romulobonnadio » 05 Out 2012 16:43

Agora ira me entender claramente:
Clear

Private GetList := {}
m1 := "ADFAFASDF1"
m2 := "ADFAFASDF2"
m3 := "ADFAFASDF3"

@ 10,10 say "ADF1" get m1 When fGetFldVar()
@ 11,10 say "ADF2" get m2 When fGetFldVar()
@ 12,10 say "ADF3" get m3 When fGetFldVar()
read

Function fGetFldVar()
@ row(),col()+20 say GetFldVar()
Return .T.

O retorno da GetFldVar() esta vazio, porque sera?
Muito obrigado.
Nota de Moderação:
Pablo César: Mensagem editada para colocar a tag [ code ]
Veja como utilizar esta tag: Clique aqui
romulobonnadio
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 48
Data de registro: 08 Dez 2009 22:48
Cidade/Estado: Belo Horizonte
Curtiu: 5 vezes
Mens.Curtidas: 0 vez

Como pegar o nome da variavel do get ativo?

Mensagempor Pablo César » 05 Out 2012 16:52

romulobonnadio escreveu:Agora ira me entender claramente:

Clear

Private GetList := {}
m1 := "ADFAFASDF1"
m2 := "ADFAFASDF2"
m3 := "ADFAFASDF3"

@ 10,10 say "ADF1" get m1 When fGetFldVar()
@ 11,10 say "ADF2" get m2 When fGetFldVar()
@ 12,10 say "ADF3" get m3 When fGetFldVar()
read

Function fGetFldVar()
@ row(),col()+20 say GetFldVar()
Return .T.


O retorno da GetFldVar() esta vazio, porque sera?

Não, não está vazio o retorno do GetFldVar(), pois está retornando o nome da variável ativa.

Olha a tela aqui:
Tela54.PNG


romulobonnadio escreveu:Como pegar o nome da variavel do get ativo?
Não era essa a sua necessidade ?
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 de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Como pegar o nome da variavel do get ativo?

Mensagempor romulobonnadio » 05 Out 2012 16:55

Encontrei o erro nas libs, estava como LIB CT,ptool52
Tirei a ptool52 e a funcao GetFldVar() voltou a retornar o nome do campo corretamente.
Amigo muito obrigado pela dica.
romulobonnadio
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 48
Data de registro: 08 Dez 2009 22:48
Cidade/Estado: Belo Horizonte
Curtiu: 5 vezes
Mens.Curtidas: 0 vez

Como pegar o nome da variavel do get ativo?

Mensagempor Pablo César » 05 Out 2012 16:59

Encontrei o erro nas libs, estava como LIB CT,ptool52
Tirei a ptool52 e a funcao GetFldVar() voltou a retornar o nome do campo corretamente.
Ahhh conflito de funções entre ambas libs... Acho que o que ajudou eu ter mencionado que era da CT.lib. Bom que bom que resolveu e a culpa não é do BLINKER rs
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 de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Como pegar o nome da variavel do get ativo?

Mensagempor romulobonnadio » 05 Out 2012 19:07

O engracado q o lnk tanto do exospace qto do blinker eh o mesmo rssr, so muda algumas coisas mas utilizam as mesmas libs etc
E no exospace funcionava blz rsrsr
D qq forma muit obrigado ai parceiro, tenha 1 bom fds e fica c Deus.
romulobonnadio
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 48
Data de registro: 08 Dez 2009 22:48
Cidade/Estado: Belo Horizonte
Curtiu: 5 vezes
Mens.Curtidas: 0 vez

Como pegar o nome da variavel do get ativo?

Mensagempor alxsts » 05 Out 2012 20:52

Olá!

Só para enriquecer o conteúdo, segue um exemplo de manipulação de gets, sem usar biblioteca de terceiros. Creio que atende à necessidade do OP.
Function Main()

   LOCAL cNome:=Space(38)
   LOCAL cTel:=Space(12)
   LOCAL GetList := {}

   cls

   SetBlink( .F. )

   @ 12,05 Say "Nome     :" ;
         Color "GR+/N"      ;
           Get cNome        ;
         Color "N/W, N/W*"  ;
         Pict "@K"          ;
          When { || SetPos( GetActive():row + 10, 5 ), DispOut( GetActive():name ), .T. } ;
         Valid { || SetPos( GetActive():row + 10, 5 ), DispOut( Space( 10 ) ), .T. }

   @ 13,05 Say "Telefone :" ;
         Color "GR+/N"      ;
           Get cTel         ;
         Color "N/W, N/W*"  ;
         Pict "@K"          ;
          When  { || SetPos( GetActive():row + 10, 5 ), DispOut( GetActive():name ), .T. } ;
         Valid  { || SetPos( GetActive():row + 10, 5 ), DispOut( Space( 10 ) ), .T. }

   // faz o read sem destruir o GetList
   ReadModal( GetList )

   // Percorre o GetList alterando o conteúdo das variáveis
   AEval( GetList, { |e,p| e:setFocus(), ;
                           e:varPut( PadR( "Get " + Ltrim( Str( p ) ), Len( e:original) ) ), ;
                           e:killFocus() } )

   // Novo read
   ReadModal( GetList ); GetList := {}

   @ 17, 05 Say "Nome   : " + cNome
   @ 18, 05 Say "Fone   : " + cTel

   SetPos( 20,05 )

   WAIT "FIM - Tecle algo..."

   RETURN NIL
//--------------------------------------------------------------------------------------------------
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Como pegar o nome da variavel do get ativo?

Mensagempor alxsts » 29 Out 2018 19:28

Olá!

Sim. Foi respondido assim em 2 tópicos do post: (Imatech » 05 Out 2012 14:42 e alxsts » 05 Out 2012 20:52), não tão objetivamente.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes




Retornar para CA-Clipper

Quem está online

Usuários vendo este fórum: Google [Bot] e 11 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro