Pessoal, alguém pode me dar uma ajuda por favor? Consegui resolver de uma forma diferente, mas ainda não é a ideal. Eu continuei tirando a média, porém no final eu multiplico essa média pela quantidade de trechos selecionados para a consulta. Da certinho o valor da soma, porém gerou um outro problema. Pergunta: é possível descobrir a quantidade de itens dentro de um grupo? Ex.:
10/10/2009 |___ Trecho 1 |___ Trecho 2 |___ |___ Linha 1 |___ |___ Linha 2 |___ Trecho 3 Preciso saber quantos trechos tem (3 no caso). Valew! On 24 ago, 16:05, Berkowitz <rafael.rafael...@gmail.com> wrote: > 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=p2MZcTkAAAD7Tl1Myh493... > > 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 -~----------~----~----~----~------~----~------~--~---