Valid dos Gets - Alguém pode me ajudar?

Post Reply
Soares289
Posts: 30
Joined: Tue Apr 17, 2007 7:07 pm
Location: Brasil-São Paulo-SP

Valid dos Gets - Alguém pode me ajudar?

Post by Soares289 »

Estou tendo muitos probemas com os gets, preciso montar um esquema que crie os gets e use os valids, mais todas as minhas tentativas foram fracassadas, alguém ai sabe como usar os valids?

Vou postar um exemplo do que estou tentando fazer, mais sempre da um dos problemas, ou retorna o erro da funçõ TRANSFORM ou o que é digitado em um get passa para todos, ou nem da para digitar nos gets, e tem mais, só que não vale a pena colocar aqui.

Code: Select all

#include "SQLRDD.ch"
#include "FiveWin.ch"

function main(cDSN)
   local oWnd, v, t,vali, c := 1 , oG   
   DEFINE WINDOW oWnd FROM 1,1 TO getSysMetrics(1)/2,getSysMetrics(0)/2 PIXEL TITLE "Teste"   
   oG := array(4)    // <-- Minha ultima esperança ;( (Não funcionou)
   v=array(4)
   v[1]  := "o"
   v[2]  := "a"
   v[3]  := "b"
   v[4]  := "d"
   ttop  := 1
   
   for c = 1 to 4   
      t=v[c]      
      private &t := space(10)
      
      vali  := "!EMPTY(" + t + ")"
      oG[c] := TGET():New(tTop, 1,{|| &t }, oWnd, 50, 10,, &(vali))
      //@ ttop,1 GET &(t) PICTURE "@!" VALID &(vali)
      ttop+=2
           
   next
   ? o ; ? a ; ? b ; ? d    // apenas para comprovar que a variavel foi declarada (Não confio nesse macro)
   ACTIVATE WINDOW oWnd
return
Já não sei mais como fazer isso, se alguem tiver qualquer sugestão ou opinial ou ainda uma solução, me envie, ficarei MUITOOO AGRADECIDO.

Obrigado, t+.
User avatar
pymsoft
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia
Contact:

Post by pymsoft »

Mira este post, te servirà para orientarte


http://fivetechsoft.com/forums/viewtopi ... hed+locals


Saludos
Pedro Gonzalez
Soares289
Posts: 30
Joined: Tue Apr 17, 2007 7:07 pm
Location: Brasil-São Paulo-SP

Post by Soares289 »

Olhei o post, mais não entendi muito bem...
o codeblock que estou passando está errado?
User avatar
pymsoft
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia
Contact:

Post by pymsoft »

Prueba asi:

Code: Select all

#include "SQLRDD.ch"
#include "FiveWin.ch"

function main(cDSN)
   local oWnd, v, t,vali, c := 1 , oG   
   DEFINE WINDOW oWnd FROM 1,1 TO getSysMetrics(1)/2,getSysMetrics(0)/2 PIXEL TITLE "Teste"   
   oG := array(4)    // <-- Minha ultima esperança ;( (Não funcionou)
   v=array(4)
   v[1]  := "o"
   v[2]  := "a"
   v[3]  := "b"
   v[4]  := "d"
   ttop  := 1
   
   for c = 1 to 4   
      t=v[c]     
      private &t := space(10)
     
      vali  := "!EMPTY(" + t + ")"
      oG[c] := TGET():New(tTop, 1,  GenBlock( v, c ), oWnd, 50, 10,, &(vali))
      //@ ttop,1 GET &(t) PICTURE "@!" VALID &(vali)
      ttop+=2
           
   next
   ? o ; ? a ; ? b ; ? d    // apenas para comprovar que a variavel foi declarada (Não confio nesse macro)
   ACTIVATE WINDOW oWnd
return 


function GenBlock( v, c )
RETURN { || v[c] } 

Saludos
Pedro Gonzalez
Soares289
Posts: 30
Joined: Tue Apr 17, 2007 7:07 pm
Location: Brasil-São Paulo-SP

Post by Soares289 »

Agora entendi, nesse caso do array funcionario, mais esse código que postei é apenas um prg de teste que estava montando.
O intuito disso é o seguinte, a classe que estou montando deve criar uma tela de "EDIÇÃO" com todos _ do browse aberto, o problema é que o browse não tem todos _ da tabela, só os que estão especificados em uma outra tabela, e nessa mesma tabela com os nomes das colunas que o browse vai ter, tem também a rotina de validação de cada campo, e apartir dai que vou ter que tirar.

Basicamente o seguinte , pego a rotina como string e uso o macro na hora de criar a janela de edição, e como o banco de dados tem _, fica ruim fazer a edição direto no browse.

Como solução, gravei tudo em um array para quando criar os get pegar o valid e a Picture direto dele tb, o nome _, etc.
Para você entender melhor, você pode dar uma olhada em um tópico que postei parte dessa rotina.

http://fivetechsoft.com/forums/viewtopi ... highlight=

E fica complicado fazer diferente, pois estou passando o sistema de modo texto para modo grafico, e já existe muitos clientes usando ele, fica complicado trocar o banco de dados de todos eles, ou fazer isso sem pegar do banco de dados, pois cada empresa que usa o sistema tem seus campos nas tabelas, etc.

De qualquer forma, obrigado pela ajuda, vou tentar usar essa idéia para fazer isso, obrigado. T+.
Soares289
Posts: 30
Joined: Tue Apr 17, 2007 7:07 pm
Location: Brasil-São Paulo-SP

Post by Soares289 »

Eu consegui fazer cada get ter um valor diferente, ligado direto no browse, o problem é que se edito um desses gets, assim que ele perde o fóco, o get retorna ao valor antigo, assim não vale de nada oque digito nele.

Como que fasso com isso? Aluém pode me ajudar?
User avatar
RenOmaS
Posts: 205
Joined: Fri Oct 07, 2005 5:07 pm

Post by RenOmaS »

VC pode experimentar

function GenBlock( v, c )
RETURN { |u| If( u == Nil, v[c], v[c] := u ) }
Soares289
Posts: 30
Joined: Tue Apr 17, 2007 7:07 pm
Location: Brasil-São Paulo-SP

Post by Soares289 »

Eu estava msm tentando fazer algo parecido, mais estava me confundindo na hora de rotornar o codeblock, vou tentar fazer dessa forma ai.

Muito obrigado msm,flw. :D
Soares289
Posts: 30
Joined: Tue Apr 17, 2007 7:07 pm
Location: Brasil-São Paulo-SP

Post by Soares289 »

Os gets foram montados, mais não da pra digitar nada neles.
Já tentei mudar o conteudo deles mais não consegui.
Post Reply