× Linguagem de Programação ADVPL

Perguntas [RESOLVIDO] Como criar LISTBOX FIELDS Usando array?

Mais
9 anos 11 meses atrás - 9 anos 11 meses atrás #26472 por themrl16
Boa tarde a todos! Estou batendo cabeça desde manhã, e não consegui encontrar uma solução para o meu problema. Poderiam me ajudar?

Estou desenvolvendo uma rotina onde serão passados como parâmetros 2 objetos e 2 arrays com o mesmo nº de posições. Os parâmetros 5 e 6 corresponde ao número de colunas que serão incluídas na primeira ListBox e na segunda Listbox (ou seja: ao todo serão 6 parâmetros na rotina, mas isso é só para conhecimento de vocês...).

As colunas do ListBox, poderão variar na quantidade de colunas. Segue abaixo um exemplo que funciona para o meu caso:

@ 001, 010 ListBox oWBrowse1 VAR cWBrowse1 Fields HEADER 'CAMPO1','CAMPO2' Size 010 , 010 Of oDExec Pixel ON CHANGE (FuncaoABC())

O link a seguir possui uma imagem exemplificando o resultado 1: uploaddeimagens.com.br/images/000/409/218/full/img1.png


Observem que os meus campos do cabeçalho são 'CAMPO1','CAMPO2'.A ideia é que seja utilizado um array para passar o nome das colunas... Segue um exemplo:

aCols1:= {'CAMPO1', 'CAMPO2'} //Teste 1
AAdd(aCols1,{'CAMPO1', 'CAMPO2'}) //Teste 2
@ 001, 010 ListBox oWBrowse1 VAR cWBrowse1 Fields HEADER aCols1 Size 010 , 010 Of oDExec Pixel ON CHANGE (FuncaoABC())

O link a seguir possui uma imagem exemplificando o resultado 2: uploaddeimagens.com.br/images/000/409/220/full/img2.png

No exemplo acima, não é gerado nenhum tipo de erro, porém não obtenho o resultado desejado em nenhum dos dois testes de array. Conforme segue na imagem abaixo, eu fico apenas com uma coluna no listbox e ela não possui o título do cabeçalho:


Por favor, poderiam me ajudar a encontrar uma forma de adicionar os campos dinamicamente na ListBox? Seja através de array, macro de substituição... alguma coisa que eu possa utilizar as colunas sem ter elas pré-definidas no código, visto que a chamada da minha listbox acontecerá através de rotinas diferentes, onde uma terá mais colunas que a outra :(

Disponibilizei em anexo o fonte atual que eu possuo no programa, caso sirva de auxílio para o entendimento. Ele ainda está em desenvolvimento e eu sou novato em ADVPL, então desculpem a bagunça :p

Abraços,

Murilo.
Anexos:
Ultima edição: 9 anos 11 meses atrás por themrl16.

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 11 meses atrás #26476 por lalberto
Murilo bom dia, por favor compacte o arquivo para anexar aqui no forum.

Abraços.

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 11 meses atrás - 9 anos 11 meses atrás #26479 por themrl16
Bom dia a todos!

OK Luiz, não sabia sobre esse detalhe no fórum. Obrigado pelo toque.

Eu consegui resolver da seguinte forma:

aCols1:= {'CAMPO1', 'CAMPO2'} //Teste 1
@ 001, 010 ListBox oWBrowse1 VAR cWBrowse1 Fields HEADER aCols1 Size 010 , 010 Of oDExec Pixel ON CHANGE (FuncaoABC())
oWBrowse1:aHeaders := aClone(aCols1)


Quando a ListBox é criada, ela ficará sem as colunas. Porém ao definir o aHeaders, ele permite que seja usado um array... percebi que isso serve também para oWBrowse1:aColSizes:= aClone(aSize) por exemplo (onde eu defino o tamanho das colunas).

Esse tipo de coisa é chatinha para encontrar, visto que não possuo nenhum tipo de documentação para ter uma referência :/

Agradeço a todos que tentaram analisar o caso e ajudar.

Abraços,

Murilo.
Ultima edição: 9 anos 11 meses atrás por themrl16.

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 11 meses atrás #26482 por lalberto
Murilo sem problemas meu brother, apareça sempre ai ok.

Abraços

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.121 segundos
Joomla templates by a4joomla