- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- [RESOLVIDO] Como criar LISTBOX FIELDS Usando array?
Perguntas [RESOLVIDO] Como criar LISTBOX FIELDS Usando array?
- themrl16
- Autor do Tópico
- Desconectado
- Membro Iniciado
- Postagens: 8
- Obrigados Recebidos: 0
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:
O link a seguir possui uma imagem exemplificando o resultado 1: uploaddeimagens.com.br/images/000/409/218/full/img1.png@ 001, 010 ListBox oWBrowse1 VAR cWBrowse1 Fields HEADER 'CAMPO1','CAMPO2' Size 010 , 010 Of oDExec Pixel ON CHANGE (FuncaoABC())
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:
O link a seguir possui uma imagem exemplificando o resultado 2: uploaddeimagens.com.br/images/000/409/220/full/img2.pngaCols1:= {'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())
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
Abraços,
Murilo.
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
- Postagens: 3676
- Obrigados Recebidos: 6
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.
- themrl16
- Autor do Tópico
- Desconectado
- Membro Iniciado
- Postagens: 8
- Obrigados Recebidos: 0
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.
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
- Postagens: 3676
- Obrigados Recebidos: 6
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.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- [RESOLVIDO] Como criar LISTBOX FIELDS Usando array?