Danilo,
Esse final de semana eu vou começar uma série de posts sobre o
AdvancedDataGrid, com screenCast, abordando hierarchicalData,
groupingData, itemRenderer e filterFunction.
Quando tiver algo pronto e aviso aqui na lista.

Felipe
http://bobfernandes.wordpress.com


2008/6/7 Danilo <[EMAIL PROTECTED]>:
> Fiz meu AdvancedDataGrid funcionar, não do jeito que eu quero, mas por
> enquanto tá valendo. Eu adicionei no evento click a chamada para o
> gc.refresh().
>
> Bom, mas passando essa parte, o meu GroupingCollection, eu pretendo fazer
> dinâmico, como se fosse assim:
>
> root1
> ---child1
> ---child2
> ------child2.1
> ---------child2.1.1
> root2
>
> Ou seja, montar a hierarquia dinamicamente. Se tiver 2 filhos, mostrar até
> esses 2, se tiver 10, mostrar esses 10. Porém, quando utilizo o
> groupingcollection, parece que não tenho esse suporte, pois, se o máximo é
> até 5 filhos, ele tenta trazer todos com 5 filhos, e por não conseguir fazer
> o agrupamento, ele para de carregar o resto da grid.
>
> Alguém já montou uma hierarquia para advanceddatagrid dinâmica dessa
> maneira? E como fez o GroupingCollection?
>
> Abraço,
> Danilo
>
> 2008/6/6 Danilo <[EMAIL PROTECTED]>:
>>
>> Fala Felipe, beleza?
>> Tentei o que você disse, e algumas outras coisas. Consegui fazer aparecer
>> algo pegando o evento click, e chamando o gc.refresh(); (mas só apareceu a
>> primeira categoria, mas acredito que seja um começo).
>>
>> Muito provavelmente, o problema está na hora que chamo o gc.refresh, assim
>> como você e o Marcelo já falaram. Apesar disso, ainda não sei onde chamar.
>> Estou enviando em anexo, o meu Mediator e o ListaContas.mxml. Caso tenha
>> paciência para dar uma olhada, ficarei grato,
>>
>> Atenciosamente
>> Danilo
>>
>> 2008/6/6 Felipe Fernandes <[EMAIL PROTECTED]>:
>>>
>>> Danilo posta também o listaContas.
>>> antes tenat o seguinte:
>>> listaContas.categories = categoryProxy.categories;
>>> listaContas.gc.source = listaContas.categories;
>>> listaContas.gc.refresh();
>>>
>>> Felipe
>>> http://bobfernandes.wordpress.com
>>>
>>>
>>> 2008/6/5 Danilo <[EMAIL PROTECTED]>:
>>> > Felipe, na verdade, estou utilizando o PureMVC, e no meu código, está
>>> > assim:
>>> >
>>> >         public function ListaContasMediator(viewComponent:Object){
>>> >             super(NOME,viewComponent);
>>> >
>>> >             listaContas.addEventListener(ListaContas.CREATE, onCreate);
>>> >             listaContas.addEventListener(ListaContas.REMOVE, onDelete);
>>> >             listaContas.addEventListener(ListaContas.SELECT, onSelect);
>>> >
>>> >             categoryProxy = facade.retrieveProxy(CategoryProxy.NOME) as
>>> > CategoryProxy;
>>> >
>>> >             listaContas.categories = categoryProxy.categories;
>>> >             listaContas.gc.refresh();
>>> >         }
>>> >
>>> > e tem essa (que pega o listaContas):
>>> >         private function get listaContas():ListaContas{
>>> >             return viewComponent as ListaContas
>>> >         }
>>> >
>>> > Eu seto o categories, do listaContas, ali na linha em vermelho, e logo
>>> > abaixo dei o refresh. Porém, não funciona.
>>> > Não sei nem o que tentar de diferente mais.
>>> >
>>> > Abraço,
>>> > Danilo
>>> >
>>> > 2008/6/5 Felipe Fernandes <[EMAIL PROTECTED]>:
>>> >>
>>> >> Danilo,
>>> >>
>>> >> Deixa eu ver se consigo te ajudar, tem uma função no meio do seu
>>> >> código que trata o retorno dos dados e deve conter algo parecido com
>>> >> isso:
>>> >> categories = new ArrayCollection(event.result as Array);
>>> >> Agora adicione o seguinte logo abaixo:
>>> >> gc.refresh()
>>> >>
>>> >> Caso vc continue com dúvidas poste seu código (a parte flex) inteiro
>>> >> aqui, para que possamos te explicar melhor.
>>> >>
>>> >> Felipe
>>> >> http://bobfernandes.wordpress.com
>>> >>
>>> >> 2008/6/5 Danilo <[EMAIL PROTECTED]>:
>>> >> > Marcelo,
>>> >> >
>>> >> > Estou entendendo o que devo fazer.
>>> >> > Agora surgiu uma outra dúvida.
>>> >> >
>>> >> > No result do meu método que pega as categorias, eu adicionei o
>>> >> > seguinte
>>> >> > código:
>>> >> >
>>> >> > var listaContas:ListaContas = new ListaContas();
>>> >> > listaContas.gc.refresh();
>>> >> >
>>> >> > Porém, não está funcionando, mas eu imagino que não esteja
>>> >> > funcionando,
>>> >> > porque eu dei um new ListaContas. Correto?
>>> >> > Você sabe me dizer, como tem que ser o gc.refresh(), lá no meu
>>> >> > proxy,
>>> >> > para
>>> >> > que ele funcione na tela listaContas?
>>> >> >
>>> >> > Abraço,
>>> >> > Danilo
>>> >> > 2008/6/5 Marcelo Savioli <[EMAIL PROTECTED]>:
>>> >> >>
>>> >> >> Danilo,
>>> >> >>
>>> >> >> Você pode colocar o gc.refresh() no result do metódo que carrega
>>> >> >> "categories".
>>> >> >> Pode também adicionar um listener no seu dataProvider para saber
>>> >> >> quando
>>> >> >> foi alterada a collection.
>>> >> >>
>>> >> >> Se precisar de ajuda com isso é só mandar.
>>> >> >>
>>> >> >> 2008/6/5 Danilo <[EMAIL PROTECTED]>:
>>> >> >>>
>>> >> >>> Eu fiz o debug, e entendi o que você quis dizer. Só não consigo
>>> >> >>> fazer
>>> >> >>> funcionar agora. Será que tem como você me dar uma força nessa
>>> >> >>> parte,
>>> >> >>> novamente?
>>> >> >>>
>>> >> >>> 2008/6/5 Danilo <[EMAIL PROTECTED]>:
>>> >> >>>>
>>> >> >>>> Marcelo,
>>> >> >>>> Até entendi o que você quis dizer, mas não entendi como fazer
>>> >> >>>> isso
>>> >> >>>> funcionar no código. Talvez seja por ser novato no as3, talvez
>>> >> >>>> seja
>>> >> >>>> incompetência minha mesmo. Será que teria como você explicar
>>> >> >>>> novamente?
>>> >> >>>> Desculpa o incômodo.
>>> >> >>>>
>>> >> >>>> Abraço,
>>> >> >>>> Danilo
>>> >> >>>>
>>> >> >>>> 2008/6/4 Marcelo Savioli <[EMAIL PROTECTED]>:
>>> >> >>>>>
>>> >> >>>>> Danilo,
>>> >> >>>>>
>>> >> >>>>> Apesar de estar no init da sua aplicação o retorno é assíncrono,
>>> >> >>>>> portanto ocorre aquilo que falei..
>>> >> >>>>> Você pode utilizar o debug para confirmar isso.
>>> >> >>>>>
>>> >> >>>>> Esta já seria a forma mais simples de agrupar dados no
>>> >> >>>>> AdvancedDataGrid. Este componente é muito chato mesmo de se
>>> >> >>>>> trabalhar, da
>>> >> >>>>> para perceber claramente que ele não foi desenvolvido pela mesma
>>> >> >>>>> equipe que
>>> >> >>>>> desenvolveu o sdk.
>>> >> >>>>>
>>> >> >>>>> 2008/6/4 Danilo <[EMAIL PROTECTED]>:
>>> >> >>>>>>
>>> >> >>>>>> O meu serviço PHP, é chamado no init da aplicação. Essa é a
>>> >> >>>>>> primeira
>>> >> >>>>>> coisa a ser carregada. Na verdade, no GroupingCollection, eu
>>> >> >>>>>> imagino que o
>>> >> >>>>>> categories, esteja com seus dados, mesmo porque, se eu pegar
>>> >> >>>>>> esse
>>> >> >>>>>> mesmo
>>> >> >>>>>> categories, e colocar diretamente no AdvancedDataGrid, como
>>> >> >>>>>> dataProvider,
>>> >> >>>>>> ele monta normalmente.
>>> >> >>>>>>
>>> >> >>>>>> Será que não seria algum problema com os dados retornados do
>>> >> >>>>>> php?
>>> >> >>>>>>
>>> >> >>>>>> Você conhece uma maneira mais fácil, para montar o
>>> >> >>>>>> AdvancedDataGrid?
>>> >> >>>>>>
>>> >> >>>>>> Abraço,
>>> >> >>>>>> Danilo
>>> >> >>>>>>
>>> >> >>>>>> 2008/6/4 Marcelo Savioli <[EMAIL PROTECTED]>:
>>> >> >>>>>>>
>>> >> >>>>>>> Danilo,
>>> >> >>>>>>>
>>> >> >>>>>>> Pode não ser o seu caso, mas vamos tentar.
>>> >> >>>>>>>
>>> >> >>>>>>> Quando você faz:
>>> >> >>>>>>>
>>> >> >>>>>>>      <mx:dataProvider>
>>> >> >>>>>>>         <mx:GroupingCollection id="gc" source="{categories}">
>>> >> >>>>>>>             <mx:Grouping>
>>> >> >>>>>>>                 <mx:GroupingField name="catA"/>
>>> >> >>>>>>>                 <mx:GroupingField name="catB"/>
>>> >> >>>>>>>                 <mx:GroupingField name="catC"/>
>>> >> >>>>>>>                 <mx:GroupingField name="catD"/>
>>> >> >>>>>>>             </mx:Grouping>
>>> >> >>>>>>>         </mx:GroupingCollection>
>>> >> >>>>>>>     </mx:dataProvider>
>>> >> >>>>>>>
>>> >> >>>>>>> Você esta dizendo que o dataProvider é uma GroupingCollection
>>> >> >>>>>>> baseada
>>> >> >>>>>>> em "categories". A principio, "categories" é vazio. Então a
>>> >> >>>>>>> GroupingCollection passa uma coleção vazia para o dataProvider
>>> >> >>>>>>> do
>>> >> >>>>>>> grid.
>>> >> >>>>>>> Quando você chama seu serviço no PHP, "categories" é
>>> >> >>>>>>> atualizado,
>>> >> >>>>>>> porém a GroupingCollection não monta automaticamente um novo
>>> >> >>>>>>> dataprovider
>>> >> >>>>>>> baseado nessa mudança.
>>> >> >>>>>>> Por isso, ao chamar o refresh da GroupingCollection você
>>> >> >>>>>>> estará
>>> >> >>>>>>> fazendo com que a GroupingCollection monte novamente uma
>>> >> >>>>>>> coleção
>>> >> >>>>>>> para servir
>>> >> >>>>>>> de dataProvider ao grid.
>>> >> >>>>>>>
>>> >> >>>>>>> Portanto, sempre que modificar sua coleção é necessário
>>> >> >>>>>>> remontar o
>>> >> >>>>>>> dataProvider do grid utilizando o "gc.refresh()".
>>> >> >>>>>>>
>>> >> >>>>>>> 2008/6/4 Danilo <[EMAIL PROTECTED]>:
>>> >> >>>>>>>>
>>> >> >>>>>>>> Marcelo,
>>> >> >>>>>>>> Mas, eu acho que os dados já retornaram do php, visto que se
>>> >> >>>>>>>> eu
>>> >> >>>>>>>> uso
>>> >> >>>>>>>> um dataprovider antes de dar um GroupingCollection, os dados
>>> >> >>>>>>>> montam a grid
>>> >> >>>>>>>> normalmente. Caso eu esteja equivocado, não entendi o que
>>> >> >>>>>>>> você
>>> >> >>>>>>>> quis dizer,
>>> >> >>>>>>>> ou como fazer o que você disse.
>>> >> >>>>>>>>
>>> >> >>>>>>>> Att,
>>> >> >>>>>>>> Danilo
>>> >> >>>>>>>>
>>> >> >>>>>>>> 2008/6/3 Marcelo Savioli <[EMAIL PROTECTED]>:
>>> >> >>>>>>>>>
>>> >> >>>>>>>>> Danilo,
>>> >> >>>>>>>>>
>>> >> >>>>>>>>> Faz o "gc.refresh()" após os dados retornarem do php.
>>> >> >>>>>>>>>
>>> >> >>>>>>>>> 2008/6/3 Danilo <[EMAIL PROTECTED]>:
>>> >> >>>>>>>>>>
>>> >> >>>>>>>>>> Olá pessoal,
>>> >> >>>>>>>>>> Estou com um problema, para mostrar os dados que vêm do
>>> >> >>>>>>>>>> amfphp
>>> >> >>>>>>>>>> no
>>> >> >>>>>>>>>> AdvancedDatagrid, agrupados.
>>> >> >>>>>>>>>> Atualmente, estou retornando os objetos do amfphp em uma
>>> >> >>>>>>>>>> array,
>>> >> >>>>>>>>>> da
>>> >> >>>>>>>>>> seguinte maneira:
>>> >> >>>>>>>>>>
>>> >> >>>>>>>>>> $arrTree[$i]["catA"] = $r->catA;
>>> >> >>>>>>>>>> $arrTree[$i]["catB"] = $r->catB;
>>> >> >>>>>>>>>> $arrTree[$i]["catC"] = $r->catC;
>>> >> >>>>>>>>>> $arrTree[$i]["catD"] = $r->catD;
>>> >> >>>>>>>>>> $i++;
>>> >> >>>>>>>>>>
>>> >> >>>>>>>>>>
>>> >> >>>>>>>>>> E no final, retorno a array $arrTree.
>>> >> >>>>>>>>>>
>>> >> >>>>>>>>>> Acontece, que se eu quiser listar em um Datagrid, funciona
>>> >> >>>>>>>>>> perfeitamente!
>>> >> >>>>>>>>>> Porém, gostaria de listar Hierarquicamente em um
>>> >> >>>>>>>>>> AdvancedDatagrid,
>>> >> >>>>>>>>>> juntamente com outros valores, mas não estou conseguindo
>>> >> >>>>>>>>>> montar
>>> >> >>>>>>>>>> o
>>> >> >>>>>>>>>> agrupamento dos itens. Tentei da seguinte maneira:
>>> >> >>>>>>>>>>
>>> >> >>>>>>>>>>       <mx:dataProvider>
>>> >> >>>>>>>>>>         <mx:GroupingCollection id="gc"
>>> >> >>>>>>>>>> source="{categories}">
>>> >> >>>>>>>>>>             <mx:Grouping>
>>> >> >>>>>>>>>>                 <mx:GroupingField name="catA"/>
>>> >> >>>>>>>>>>                 <mx:GroupingField name="catB"/>
>>> >> >>>>>>>>>>                 <mx:GroupingField name="catC"/>
>>> >> >>>>>>>>>>                 <mx:GroupingField name="catD"/>
>>> >> >>>>>>>>>>             </mx:Grouping>
>>> >> >>>>>>>>>>         </mx:GroupingCollection>
>>> >> >>>>>>>>>>     </mx:dataProvider>
>>> >> >>>>>>>>>>
>>> >> >>>>>>>>>> Seguindo alguns exemplos que encontrei na própria
>>> >> >>>>>>>>>> documentação
>>> >> >>>>>>>>>> da
>>> >> >>>>>>>>>> adobe.
>>> >> >>>>>>>>>> No evento creationComplete, eu tento chamar esse
>>> >> >>>>>>>>>> agrupamento
>>> >> >>>>>>>>>> assim: creationComplete="{gc.refresh();}"
>>> >> >>>>>>>>>> Mas não está funcionando.
>>> >> >>>>>>>>>>
>>> >> >>>>>>>>>> Alguém sabe me dizer, onde pode estar ocorrendo o erro? Eu
>>> >> >>>>>>>>>> sei
>>> >> >>>>>>>>>> que
>>> >> >>>>>>>>>> os dados de categories, estão chegando, tanto que se eu
>>> >> >>>>>>>>>> utilizar um
>>> >> >>>>>>>>>> dataProvider="{categories}" no AdvancedDataGrid, ele
>>> >> >>>>>>>>>> funciona
>>> >> >>>>>>>>>> normalmente,
>>> >> >>>>>>>>>> porém, parece que não estou conseguindo tratar estes dados.
>>> >> >>>>>>>>>>
>>> >> >>>>>>>>>> Será que alguém consegue me ajudar?
>>> >> >>>>>>>>>>
>>> >> >>>>>>>>>> Abraço,
>>> >> >>>>>>>>>> Danilo
>>> >> >>>>>>>>>>
>>> >> >>>>>>>>>>
>>> >> >>>>>>>>>
>>> >> >>>>>>>>>
>>> >> >>>>>>>>>
>>> >> >>>>>>>>> --
>>> >> >>>>>>>>> Marcelo Curi Savioli
>>> >> >>>>>>>>> D-Click Web & Mobile Solutions
>>> >> >>>>>>>>> [EMAIL PROTECTED]
>>> >> >>>>>>>>> www.dclick.com.br/blog
>>> >> >>>>>>>>> www.dclick.com.br
>>> >> >>>>>>>>>
>>> >> >>>>>>>>
>>> >> >>>>>>>>
>>> >> >>>>>>>>
>>> >> >>>>>>>
>>> >> >>>>>>>
>>> >> >>>>>>>
>>> >> >>>>>>> --
>>> >> >>>>>>> Marcelo Curi Savioli
>>> >> >>>>>>> D-Click Web & Mobile Solutions
>>> >> >>>>>>> [EMAIL PROTECTED]
>>> >> >>>>>>> www.dclick.com.br/blog
>>> >> >>>>>>> www.dclick.com.br
>>> >> >>>>>>>
>>> >> >>>>>>
>>> >> >>>>>>
>>> >> >>>>>>
>>> >> >>>>>
>>> >> >>>>>
>>> >> >>>>>
>>> >> >>>>> --
>>> >> >>>>> Marcelo Curi Savioli
>>> >> >>>>> DClick Web & Mobile Solutions
>>> >> >>>>> [EMAIL PROTECTED]
>>> >> >>>>> www.dclick.com.br/blog
>>> >> >>>>> www.dclick.com.br
>>> >> >>>>>
>>> >> >>>>
>>> >> >>>
>>> >> >>>
>>> >> >>>
>>> >> >>
>>> >> >>
>>> >> >>
>>> >> >> --
>>> >> >> Marcelo Curi Savioli
>>> >> >> DClick Web & Mobile Solutions
>>> >> >> [EMAIL PROTECTED]
>>> >> >> www.dclick.com.br/blog
>>> >> >> www.dclick.com.br
>>> >> >>
>>> >> >
>>> >> >
>>> >> > >
>>> >> >
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> Felipe - http://bobfernandes.wordpress.com
>>> >>
>>> >>
>>> >
>>> >
>>> > >
>>> >
>>>
>>>
>>>
>>> --
>>> Felipe - http://bobfernandes.wordpress.com
>>>
>>>
>>
>
>
> >
>



-- 
Felipe - http://bobfernandes.wordpress.com

--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a