Ola turma,
Estou com um outro problema, estou querendo montar uma tela dinamica com os dados que tenho em um dbf. Peguei os dados que queria e salvei em um vetor.
Estou conseguindo montar a tela e até salvar os campos no dbf, mas não estou conseguindo utilizar a opção de VALID.
Segue o codigo que fiz para montar a tela:
FOR x := 1 TO Len(aCampos)
cVar := aCampos[x,1]
cPict := If(Empty(aCampos[x,06]),NIL , rTrim(aCampos[x,6] ))
cValid := If(Empty(aCampos[x,07]),".T.", rTrim(aCampos[x,7] ))
cF3 := If(Empty(aCampos[x,09]),NIL , aCampos[x,9] ))
cWhen := If(Empty(aCampos[x,14]),".T.", rTrim(aCampos[x,14]))
IF aCampos[x,2] = "C"
&cVar := Space(aCampos[x,3])
ELSEIF aCampos[x,2] = "D"
&cVar := Ctod(" / / ")
ELSEIF aCampos[x,2] = "N"
&cVar := 0
ENDIF
@ nLin, nCol SAY aCampos[x,5] GET &cVar PICT cPict VALID cValid
IF x != Len(aCampos)
IF Len(aCampos[x,5]) + aCampos[x,3] + nCol > 40 .OR.;
Len(aCampos[x+1,5]) + aCampos[x+1,3] + nCol > 40
nCol := 6
nLin := nLin + 1
ELSE
nCol := 40
ENDIF
ENDIF
NEXT
Problema com GET
Moderador: Moderadores
-
david.miguel
- Usuário Nível 1

- Mensagens: 34
- Registrado em: 07 Jul 2005 11:50
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Não deu pra entender muito bem, mas, quando vc usa a clausula Valid, tem que ser // Valid alguma coisa //
Como por exemplo @ 0,0 get var valid var > 0 // onde var deve ser maior que zero, senão ele nao avança para o Get seguinte.
Agora se vc estiver querendo por exemplo, que determinado Get não seja processado devido alguma condição, use a clausula When
Exemplo
aVar:= space(10)
bVar:= space(10)
cVar:= space(10)
@ 0,0 get aVar
@ 0,0 get bVar
@ 0,0 get cVar when bVar // processa este Get, se bVar não estiver vazio
read
Espero ter ajudado.
Como por exemplo @ 0,0 get var valid var > 0 // onde var deve ser maior que zero, senão ele nao avança para o Get seguinte.
Agora se vc estiver querendo por exemplo, que determinado Get não seja processado devido alguma condição, use a clausula When
Exemplo
aVar:= space(10)
bVar:= space(10)
cVar:= space(10)
@ 0,0 get aVar
@ 0,0 get bVar
@ 0,0 get cVar when bVar // processa este Get, se bVar não estiver vazio
read
Espero ter ajudado.
-
david.miguel
- Usuário Nível 1

- Mensagens: 34
- Registrado em: 07 Jul 2005 11:50
Sim o meu cValid tem uma função aonde faz a validação da váriavel. só que como o processo que quero fazer é dinamico, o valor do valid no final da montagem da tela é o do ultimo campo.
imagine isso, uma tabela de onde tiro os dados:
CAMPO TAMANHO VALIDACAO PICTURE
codigo 6 ExisteCodigo() 999999
nome 40 @!
estado 2 ExisteEstado() !!
ficaria algo assim em um vetor:
DO WHILE !EOF()
cVar := CAMPO
cPict := PICTURE
cValid := VALIDACAO
@ lin, col GET &cVar PICT &cPict VALID &cValid
ENDDO
READ
imagine isso, uma tabela de onde tiro os dados:
CAMPO TAMANHO VALIDACAO PICTURE
codigo 6 ExisteCodigo() 999999
nome 40 @!
estado 2 ExisteEstado() !!
ficaria algo assim em um vetor:
DO WHILE !EOF()
cVar := CAMPO
cPict := PICTURE
cValid := VALIDACAO
@ lin, col GET &cVar PICT &cPict VALID &cValid
ENDDO
READ