Acrescentar itens na Grid com Vetor para os campos

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Acrescentar itens na Grid com Vetor para os campos

Mensagem por rubens »

Boa tarde..
Estou tentando fazer um rotina genérica para as consultas do meus grids.
Tenho essa linha para adicionar os itens no Grid

Código: Selecionar todos

consulta.Grid_1.AddItem( {CLI->CODIGO,CLI->NOME})
Preciso criar um vetor e usar esse vetor para adicionar itens.

Código: Selecionar todos

aCampos := {CLI->CODIGO,CLI->NOME}
Se coloco o nome do vetor direto dentro da função ADDITEM()

Código: Selecionar todos

consulta.Grid_1.AddItem(aCampos)
ele repete a descrição nos itens como na figura abaixo.
Grid repetindo descricao.png
Tentei colocar o nome do vetor entre parenteses ou com macro & e dá erro na compilação.
Como eu faço?

Obrigado
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
bjbernal
Usuário Nível 1
Usuário Nível 1
Mensagens: 31
Registrado em: 06 Ago 2004 17:27

Acrescentar itens na Grid com Vetor para os campos

Mensagem por bjbernal »

Você precisa criar UM LOOP para alimentar a grid com cada elemento do vetor.

nelementos := len(vetor)
For i = 1 to nelementos
sitem := vetor
form.grid.AddItem(sitem)
Next i
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Acrescentar itens na Grid com Vetor para os campos

Mensagem por Toledo »

Rubens, se você colocar em aCampos todos os registros que serão apresentados no Grid, então você pode usar:

Código: Selecionar todos

consulta.Grid_1.SetArray := aCampos
Neste caso, em aCampos você tem que incluir ( AADD(aCampos,{CLI->CODIGO,CLI->NOME}) ) todos os elementos/registros que serão apresentados no Grid, que é diferente do AddItem que inclui um a um os registros.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Acrescentar itens na Grid com Vetor para os campos

Mensagem por rubens »

Bom dia..
bjbernal já estava sendo feito em loop, resultado de um wildseek.

Toledo... funcionou belezinha... perfeito.. obrigado..

:))
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Acrescentar itens na Grid com Vetor para os campos

Mensagem por rubens »

Ops..
me enganei... fiz alteração no lugar errado...
Quando alterei o local correto me apresentou erro de ITEM lenght mismatch.
Daí dei mais um revisadinha e consegui assim, colocando os campos entre aspas, gerando uma variável texto ao invés de um vetor

Código: Selecionar todos

Private aCampos	:= "{CLI->CODIGO,CLI->NOME,IIF(CLI->JURIDICA='J',CLI->CGC,CLI->CPF),TRAN(CLI->SALDO,PVALOR),CLI->SITUACAO}"   
e na hora de adicionar no grid usando macro.. aí funcionou beleza..

Código: Selecionar todos

Consulta.Grid_1.AddItem( &aCampos )
detalhe: aCampos está sendo criado em um função que chama a outra função com o AddItem.
Mas funcionou, bola para frente porque estou muito atrasado aqui devido ao esforço da implantação da Nfe 4.00.

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Responder