olá pessoal.
sei que um datagrid pode adaptar-se ao seu dataprovider.
o que tenho é o seguinte:
um XMLList que serve de provider para pelo menos 13 gráficos.
o que acontece é que eu trago os dados ordenados nesse XMLLIst e necessito que o mesmo monte o datagrid nessa ordem
acontece que seria muito trabalhoso remontar o retorno e também todos os outros gráficos.
segue aí uma parte do list
RS
2
4
289
100
10
405
DF
2
2
ele vem exatamente dessa forma
e necessito que o grid fique assim:
UF jan fev marc etc total
Rs 0 1 2 3
BA 12 4 0 16
etc
total 12 5 2 19
acontece que os meses podem vir ordenados corretamente ou não.
para cada estado terá os meses e por fim um total por linha e por coluna.
como eu posso fazer para montar o grid conforme vier meu provider?
devo mexer no provider criando um arraycollection por exemplo da forma que necessito?
como posso fazer isto? estou achando complicado galera e nao estou conseguindo resolver. deve ser fácil mas não vejo solução
abraço
Não entendi muito bem a sua dúvida, mas a principio para criar um datagrid dinâmico, tu linka o atributo “dataProvider” do dataGrid a um ArrayCollection, por exemplo, e nas colunas existe um atributo chamado “dataField” que tu ira colocar o atributo do objeto iterado.
SIm seria criar dinamicamente.
não é necessário criar as colunas no datagrid se meu provider estiver correto.
se voce puder poste aí sua solução para mim comparar e etc.
abraço
private function popularGrid(): void {
var aux: int = 0;
var totalCategorias: Number = 0;
var columnList: Array = view.grid.columns;
this.model.listaDadosCategoria.removeAll(); //Dataprovider
this.view.vboxPlanoInvestimentos.removeAllChildren();
for each ( var c: CategoriaDTO in this.model.listaCategorias ) {
var linha: Object = new Object();
linha['label'] = c.label;
for each ( var d: CategoriaDistribuicaoDTO in c.listaCategoriaDistribuicao ) {
if (aux == 0) {
var column: DataGridColumn = new DataGridColumn();
column.headerText = view.formatDate(d.dtDistribuicao);
column.dataField = 'valor' + d.nrDistribuicao;
column.labelFunction = view.formatNumber;
columnList.push(column);
}
linha['valor' + d.nrDistribuicao] = d.valorDistribuicao;
}
this.model.listaDadosCategoria.addItem(linha);
aux++;
}
view.grid.columns = columnList;
}