Valid dos Gets - Alguém pode me ajudar?

Valid dos Gets - Alguém pode me ajudar?

Postby Soares289 » Thu May 03, 2007 2:29 pm

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  Expand view  RUN
#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+.
Soares289
 
Posts: 30
Joined: Tue Apr 17, 2007 7:07 pm
Location: Brasil-São Paulo-SP

Postby pymsoft » Thu May 03, 2007 2:34 pm

Mira este post, te servirà para orientarte


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


Saludos
Pedro Gonzalez
User avatar
pymsoft
 
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia

Postby Soares289 » Thu May 03, 2007 2:44 pm

Olhei o post, mais não entendi muito bem...
o codeblock que estou passando está errado?
Soares289
 
Posts: 30
Joined: Tue Apr 17, 2007 7:07 pm
Location: Brasil-São Paulo-SP

Postby pymsoft » Thu May 03, 2007 3:38 pm

Prueba asi:


Code: Select all  Expand view  RUN
#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
User avatar
pymsoft
 
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia

Postby Soares289 » Thu May 03, 2007 5:10 pm

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 os campos do browse aberto, o problema é que o browse não tem todos os campos 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 MUITOS campos, 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 dos campos, etc.
Para você entender melhor, você pode dar uma olhada em um tópico que postei parte dessa rotina.

http://fivetechsoft.com/forums/viewtopic.php?t=6724&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

Postby Soares289 » Fri May 04, 2007 8:49 pm

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?
Soares289
 
Posts: 30
Joined: Tue Apr 17, 2007 7:07 pm
Location: Brasil-São Paulo-SP

Postby RenOmaS » Fri May 04, 2007 9:07 pm

VC pode experimentar

function GenBlock( v, c )
RETURN { |u| If( u == Nil, v[c], v[c] := u ) }
User avatar
RenOmaS
 
Posts: 205
Joined: Fri Oct 07, 2005 5:07 pm

Postby Soares289 » Mon May 07, 2007 11:40 am

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

Postby Soares289 » Mon May 07, 2007 12:45 pm

Os gets foram montados, mais não da pra digitar nada neles.
Já tentei mudar o conteudo deles mais não consegui.
Soares289
 
Posts: 30
Joined: Tue Apr 17, 2007 7:07 pm
Location: Brasil-São Paulo-SP


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 39 guests