Interessante como temos mania de colecionar coisas, veja o momento, agora todo mundo está colecionando as figurinhas da copa do mundo, e tem até bandido roubando a carga das tais figurinhas, e vendendo por um precinho mais 'camarada' no mercado negro!. Coleções de selos, coleções de insetos, ..., e ai vai.
Genexus também possui coleções, e o interessante desse recurso é que, assim como acontece no mundo real, as coleções normalmente se constituem de conjuntos de dados cuja dimensão não é conhecida. Diferentemente de seus primos próximos, e limitado, que são as matrizes e vetores.
Então para ficar bem claro, as coleções em Genexus são elementos criados a partir de variáveis, que são, portanto, armazenadas na memória do servidor web (claro, em sistemas web) e que permitem a realização de operações sobre conjuntos.
Para clarear ainda mais as idéias, vai ai um exemplo. Um painel, com um grid obtém seus dados a partir da chamada a um procedimento que devolve a coleção a ser carregada. No Source do procedimento temos:
&item = "Itapecerica da Serra"
&lista.Add(&item)
&item = "Mombuca"
&lista.Add(&item)&item = "Divinópolis"
&lista.Add(&item)
Sendo &item uma variável simples do tipo Character(20) e &lista uma variável do tipo Character(20) marcada como Collection. Na regra PARM deste procedimento temos:
parm(out:&lista);
A chamada ao procedimento ocorre no evento Start de um WebPanel, que possui um Grid com uma variável &cidade (Character 20), que é carregada com os dados da lista obtida.
&lista = Procedure1.Udp()
for &item in &lista
for &item in &lista
&cidade = &item
load
endfor
EndEvent
E claro que o resultado não podia ser outro.
E por falar em figurinha, tenho algumas repetidas aqui comigo e está faltando na minha coleção a do Luiz Fabiano, alguem tem ai?
Nenhum comentário:
Postar um comentário