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 -~----------~----~----~----~------~----~------~--~---