Página 1 de 1

Como adicionar um valor a matriz sem anular o outro?

Enviado: 22 Fev 2010 17:53
por rangelssilva
Caros programadores.


Tive uma dúvida ao construir uma função que pega os nomes dos campos de um DBF junto com o valor e jogar dentro de uma matriz.

no começo da função declarei assim.

Mat_campo:={}

Depois adicioneis os nomes dos campos da seguinte maneira:

// Adiciona os nomes dos campos na matriz
// coluna 1
for x=1 to Qtd_campos

Nome_campo=FieldName(x)
aadd(Mat_campo,{Nome_campo,})
Next x

Veja que só a primeira coluna foi preenchida com o nome dos campos do DBF de acordo com um criterio que estabeleci.

Em seguida preciso adicionar o valor de cada uma na posição correta. Como faço isso desde o primeiro elemento.

pois se eu fizer da maneira abaixo o que eu ja tinha colocado na matriz se torna nulo. O que preciso é: pegar da primeira linha até a ultima e mexer somento na coluna 2 de todos os elementos, no caso pegar o valor do campo e adicioná-lo. Assim terei uma matriz com o nome do campo e seu valor. Usarei essa função para mostrar diversos campos posteriormente, sem ter que ficar fazendo relacionamentos a toda hora, abrindo e fechando dbfs, areas de trabalho, etc.

É possível fazer o que eu estou pensando???

// Adiciona o valor dos campos na matriz
// coluna 2
for x=1 to Qtd_campos

Val_campo=&DBF2->(Fieldget(x))
afill(Mat_campo,{,Val_campo},1,Qtd_campos)

Next x


O que devo fazer?????

Re: Como adicionar um valor a matriz sem anular o outro?

Enviado: 22 Fev 2010 18:33
por Toledo
Rangel, tente fazer o seguinte:

Código: Selecionar todos

for x=1 to Qtd_campos
  Val_campo=&DBF2->(Fieldget(x))
  Mat_campo[x,2]:=Val_campo
Next x
Abraços,

Re: Como adicionar um valor a matriz sem anular o outro?

Enviado: 22 Fev 2010 20:37
por rangelssilva
Valeu Cara.....


REalmente vc me ajudou.... Fiquei quebrando a cabeça e nada... TInha feito algo parecido mas nao tinha utilizado (:=). Entendi que isso é uma forma de declarar o vetor novamente e assim consigo colocar os valores somente onde eu quero desde o começo do mesmo....



Obrigado pela ajuda Toledo.....

Um grande abraço...