Precisei implementar uma AdvancedDataGrid em uma funcionalidade que hora ordenava os dados pela primeira letra, hora não. Em primeiro momento achei que fosse bem complicado, já que tinha feito algo semelhante em outro projeto onde deveria agrupar por exemplos hora os servidores, hora as instancias dos servidores.
Ao olhar esse projeto antigo, achei que estava muito complicado e de dificil entendimento, voltei ao livedocs para estudar um pouco mais.
Usei o exemplo basico da Adobe e com algumas adaptações, vi que o que eu queria fazer era mais simples do que imaginava.
Tenho uma camada de dados simples para demonstração, e de inicio, alimento minha grid com ela.
[ACTIONSCRIPT3]
[Bindable]
private var dpFlat:ArrayCollection = new ArrayCollection([
{Region:”Southwest”, Territory:”Arizona”,
Territory_Rep:”Barbara Jennings”, Actual:38865, Estimate:40000},
{Region:”Southwest”, Territory:”Arizona”,
Territory_Rep:”Dana Binn”, Actual:29885, Estimate:30000},
{Region:”Southwest”, Territory:”Central California”,
Territory_Rep:”Joe Smith”, Actual:29134, Estimate:30000},
{Region:”Southwest”, Territory:”Nevada”,
Territory_Rep:”Bethany Pittman”, Actual:52888, Estimate:45000},
{Region:”Southwest”, Territory:”Northern California”,
Territory_Rep:”Lauren Ipsum”, Actual:38805, Estimate:40000},
{Region:”Southwest”, Territory:”Northern California”,
Territory_Rep:”T.R. Smith”, Actual:55498, Estimate:40000},
{Region:”Southwest”, Territory:”Southern California”,
Territory_Rep:”Alice Treu”, Actual:44985, Estimate:45000},
{Region:”Southwest”, Territory:”Southern California”,
Territory_Rep:”Jane Grove”, Actual:44913, Estimate:45000}
]);
[/ACTIONSCRIPT3]
Um CheckBox foi adicionando um listener para me dizer quando ele esta selecionado ou não.
[MXML]
[/MXML]
Minha função que trata o evento do CheckBox fará o trabalho de agrupar e desagrupar os dados.
[ACTIONSCRIPT]
private function handlerCheck(evt:Event):void
{
if(ckGroup.selected)
{
trace(“selected”);
gc.source = dpFlat;
gc.refresh();
hView = new HierarchicalCollectionView(gc);
myADG.dataProvider = hView;
}
else
{
trace(“no selected”);
myADG.dataProvider = dpFlat;
}
}
[/ACTIONSCRIPT]
Estou usando a classe GroupCollection que é responsavel por agrupar meus dados por um determinado campo para ser mostrado na AdvancedDataGrid.
[MXML]
[/ MXML]
Passando depois para a HierarchicalCollectionView que fornece uma visão hierárquica dos meus dados.
[ACTIONSCRIPT]
gc.source = dpFlat;
gc.refresh();
hView = new HierarchicalCollectionView(gc);
myADG.dataProvider = hView;
[/ACTIONSCRIPT]
O exemplo completo:
[MXML]
[/ MXML]
referencias:
http://livedocs.adobe.com/flex/3/html/help.html?content=advdatagrid_06.html
Translations:
English Version
Pingback: Tweets that mention Leonardo França » Agrupando e desagrupando dados na AdvancedDataGrid -- Topsy.com