AdvancedDataGrid

Bom, eu to tentando fazer um negocio que de tão simples não estou conseguindo, e gostaria de saber se alguém pode me ajudar.
Eu nunca tinha utilizado o AdvancedDataGrid e agora preciso criar uma arvore muito simples, que vai ser salva no MySql.
Vou ilustrar com um ArrayCollection:
private var dpFlat:ArrayCollection = new ArrayCollection([ {id:1, descricao:"Teste1",pai:0}, {id:2, descricao:"Teste2",pai:0}, {id:3, descricao:"Teste3",pai:1}]);

O que eu preciso é mostrar no AdvancedDataGrid é uma arvore, onde o nível principal (neste caso) será composto por “Teste1” e “Teste2” e “Teste3” sera filho de “Teste1”.

Deu pra entender? Alguém pode me ajudar?

Obrigado.

Opa,
Vc precisa usar a classe GroupingCollection2.
Vc pode ter uma coleção flat como no exemplo do link:
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/controls/AdvancedDataGrid.html
Ou vc pode usar o HierarchicalData passando como dataProvider do teu grid, mas aí os objetos filhos precisam estar num atributo children. Se não me engano o GroupingCollection2 cria um HierarchicalData.

[]s

fabiophx obrigado por responder…
Eu estou utilizando o Felx 4 então já uso o GroupingCollection2 (GroupingCollection é deprecated no Flex4)
Olhei vários exemplos, inclusive a documentação, mas não encontrei nada do modo tão simples como preciso fazer…
Como pode ver no link que me mandou:

[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} ]);

Ok ele organiza pois tem os campos Region, Territory, Territory_Rep…
O que eu quero fazer é uma arvore mesmo, por exemplo, creiei um primeiro cadastro, o id dele vai ser 1, a descrição não importa, e o “pai” vai ser 0 (zero) pois ele vai ficar na “raiz” da árvore.
Quando eu criar outro registro, se a o primeiro estiver selecionado eu passo o id dele para o campo pai, e dai ele será um “filho” do primeiro registro, e ai sucessivamente.
Não sei se deu pra entender, mas é algo bem simples mesmo, porém não sei como o componente vai “entender” que o campo “pai” vai estar relacionado ao id de um outro registro.

Obrigado.

Só complementando.
Eu preciso que no MySql estejam salvos os dados conforme esse ArrayCollection:

private var dpFlat:ArrayCollection = new ArrayCollection([ {id:1, descricao:"Teste1",pai:0}, {id:2, descricao:"Teste2",pai:0}, {id:3, descricao:"Filho do Teste1",pai:1}, {id:4, descricao:"Teste4",pai:0}, {id:5, descricao:"Filho do Teste4",pai:4}, {id:6, descricao:"Filho do Filho do Teste1",pai:3});

Mas que isso não me impeça de ter N níveis no AdvancedDataGrid, seguindo a ideia de uma árvore com nodes.

O exemplo q lhe passei cria uma árvore no grid, abstraindo a idéia dos dados do exemplo, vc terá um groupingcollection com o atributo descricaoPai

private var dpFlat:ArrayCollection = new ArrayCollection([  
                {id:1, descricao:"Teste1",descricaoPai:"Raiz", idPai:0},  
                {id:2, descricao:"Teste2",descricaoPai:"Raiz", idPai:0},  
                {id:3, descricao:"Filho do Teste1",descricaoPai:"Teste1", idPai:1},  
                {id:4, descricao:"Teste4",descricaoPai:"Raiz", idPai:0},  
                {id:5, descricao:"Filho do Teste4",descricaoPai:"Teste 4", idPai:4},  
                {id:6, descricao:"Filho do Filho do Teste1",descricaoPai:"Teste1", idPai:1});  

[]s

Olá mais uma vez…
Entendi em partes, até melhorou um pouco, mas ainda assim não consigo fazer com que a árvore fique de maneira correta
todos os itens estão aparecendo na raiz, e não sei onde estou errando.
Segue um dos modos como organizei e não deu certo:

[code] <mx:AdvancedDataGrid width=“497” height=“294” x=“10” y=“14” height.adicionar=“268” initialize=“gc.refresh()”>
mx:dataProvider
<mx:GroupingCollection2 id=“gc” source="{dpFlat}">
mx:grouping
mx:Grouping
<mx:GroupingField name=“descricao”/>
<mx:GroupingField name=“idPai”/>
</mx:Grouping>
</mx:grouping>
</mx:GroupingCollection2>
</mx:dataProvider>

	<mx:columns>
		<mx:AdvancedDataGridColumn dataField="descricao" headerText="Descrição"/>
	</mx:columns>
</mx:AdvancedDataGrid>

[/code]

O array de exemplo:

private var dpFlat:ArrayCollection = new ArrayCollection([ {id:1, descricao:"Teste1",descricaoPai:"Raiz", idPai:0}, {id:2, descricao:"Teste2",descricaoPai:"Raiz", idPai:0}, {id:3, descricao:"Filho do Teste1",descricaoPai:"Teste1", idPai:1}, {id:4, descricao:"Teste3",descricaoPai:"Raiz", idPai:0}, {id:5, descricao:"Filho do Teste3",descricaoPai:"Teste 3", idPai:4}, {id:6, descricao:"Filho do Filho do Teste1",descricaoPai:"Filho do Teste1", idPai:3}]);

bom dia,
Vc terá somente um groupingfield:

<mx:GroupingField name=“descricaoPai”/>

[]s

Daí não fica certo, ele fica assim: