Olá pessoal! Firme? Estou com um probleminha com um AdvancedDataGrid e não sei nem como explicar direito, mas vamos lá! Por favor vejam essa imagem: http://flexdev.googlegroups.com/web/img.gif?gda=p2MZcTkAAAD7Tl1Myh4933faKLuFvqp_c2jpWfwwt4vsXHei7f4-faLtiNLud0F8ZpwUWFrGskmECKgQbmraGdxlZulaYnsh&gsc=Axj7nQsAAADdteujMY4chXURU-Ssa-Lx
Meu ADG faz dois agrupamentos: um por "referência" (que é o endereço do local; segundo nível) e por data (primeiro nível). Eu utilizo o summaryFunction para poder gerar aquela última coluna que é uma média dos valores. O problema: quando o usuário escolher as informações de TEMPO, o maior nível (de data) deverá apresentar uma SOMA das médias dos níveis abaixo e não uma média deles (como está agora). No exemplo da imagem ele mostra 9.26 na coluna B/C, porém deveria ser 18.52, que é a soma das duas médias. O código para gerar esse agrupamento (que é dinâmico) é o seguinte: ---------------------- private function gerarAgrupamento():void { var myGColl:GroupingCollection2 = new GroupingCollection2(); var group:Grouping = new Grouping(); var sr:SummaryRow = new SummaryRow(); var sfA:SummaryField = new SummaryField(); var sfB:SummaryField = new SummaryField(); myGColl.source = dgRelatorioVel.dataProvider; sr.summaryObjectFunction = objFunc; sfA.dataField = "VM_BC"; sfA.label = "mediaBC"; sfA.summaryFunction = summFunc; sfB.dataField = "VM_CB"; sfB.label = "mediaCB"; sfB.summaryFunction = summFunc; sr.fields = [sfA,sfB]; sr.summaryPlacement = "group"; var gfDataGravacao:GroupingField = new GroupingField(); gfDataGravacao.name = "data_gravacao"; gfDataGravacao.summaries=[sr]; if(!btTodosTrechos.selected) { var gfReferencia:GroupingField = new GroupingField(); gfReferencia.name = "referencia"; gfReferencia.summaries=[sr]; group.fields = [gfDataGravacao,gfReferencia]; } else { group.fields = [gfDataGravacao]; } myGColl.grouping = group; myGColl.refresh(); dgRelatorioVel.dataProvider = myGColl; dgRelatorioVel.validateNow(); } private function summFunc(cursor:IViewCursor, dataField:String, operation:String):Number { var _auxConta:Number = 0; var oddConta:String; var count:int = 0; var cor:uint; while(!cursor.afterLast) { _auxConta += cursor.current[dataField]; cursor.moveNext(); count++; } oddConta = (_auxConta/count).toFixed(2); return parseFloat(oddConta); } ---------------------- Alguém tem alguma idéia de como posso resolver isso? Desculpem pela extensão do post, mas foi a forma que encontrei para explicar meu problema! ehehe. Abraços e muito obrigado. --~--~---------~--~----~------------~-------~--~----~ 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 flexdev-unsubscr...@googlegroups.com Mais opções estão disponíveis em http://groups.google.com/group/flexdev -~----------~----~----~----~------~----~------~--~---