Valeu Daniel, o que vc escreveu foi de grande ajuda.

Att,
Lino

On 4 jan, 08:49, Tião da Obra <[EMAIL PROTECTED]> wrote:
> Bom Dia Lino Sky,
>
> Tem sim, pra falar a verdade é mais fácil você percorrer o ArrayCollection
> que alimenta a tabela e logo depois, se você quiser que a soma apareça como
> um último registro, você insere um objeto de Total com o valor do somatório.
>
> Eu pessoalmente tenho trabalhado com o seguinte cenário, faço uma tabela e
> logo abaixo eu coloco um label para o total. Tenha em mente que o
> dataProvider da tabela fica como [Bindable], neste exemplo "listaProdutos".
>
> <mx:Script>
>   <![CDATA[
>    import br.com.agroquima.util.FormatadorNumerico;
>
>    /**
>        * Informações da Página.
>        * @autor: Daniel Negri
>        * @sessao: 5 [Financeiro]
>        * @modulo: 5 [Contas a Pagar]
>        * @pagina: cadastroGrupoRelacaoPagamento
>        * @idPagina: 262
>        *   [ campos ]
>        *    codigo: 341
>     *    nome: 342
>     *    btnSalvar: 349
>     *    btnFechar: 350
>        */
>
>    [Bindable]
>    private var total:Number = 0;
>
>     [Bindable]
>     public var listaProdutos:ArrayCollection = new ArrayCollection();
>
>       private function calcularTotal():void {
>        var subTotal:int = 0;
>        total = 0;
>
>        for each ( var item:Produto in listaProdutos ) {
>         var valor:int = int(Math.round(produto.valor * 100));
>         var valorJuros:int = int(Math.round(produto.valorJuros*100));
>
>         subTotal += valor + valorJuros;
>        }
>
>        total = subTotal / 100;
>
>       }
>       }
>
>   ]]>
>  </mx:Script>
>
> <mx:DataGrid id="tabelaProdutos" dataProvider="{listaProdutos}>
>  <mx:columns>
>   <mx:DataGridColumn headerText="Produto" dataField="nome"/>
>   <mx:DataGridColumn headerText="Valor" dataField="valor"/>
>   <mx:DataGridColumn headerText="Juros" dataField="juros"/>
>  </mx:columns>
> </mx:DataGrid>
>
> <mx:Label id="labelTotal" text="Total: {calcularTotal()}"
>          width="100%"
>          textAlign="right"
>          fontWeight="bold"/>
>
> Perceba que no "text" do label "labelTotal" eu chamo o método
> "calcularTotal()" ao invés de colocar a variável "total". Assim, todas as
> vezes que o ArrayCollection "listaProdutos" for modificado, o método é
> chamado automaticamente, muito prático.
>
> Outro ponto interessante, não sei se você já procurou, em outros tópicos eu
> apresentei o problema do arredondamento de casas decimais, "O Flex não sabe
> somar" e "Ponto Flutuante - BigDecimal". Cuidado com as operações básicas do
> tipo soma, subtração e multiplicação de variáveis do tipo Number, são
> realmente muito muito ruins, repito horríveis, péssimas, entre outras
> lamúrias mais. Para contornar você acaba sendo obrigado a fazer essas
> "manobras" de multiplicar por 100, passar pra inteiro, arredondar, voltar a
> dividir por 100. Acredito que os programadores que fizeram essas novas
> linguagens, JAVA, Phyton, PHP, Javascript, inclusive o ActionScript ...,
> fugiram da aula básica de matemática, "Como somar dois números decimais,
> vamos lá 1 + 1 é igual a?", realmente uma pena. E ainda colocam a culpa no
> outro aluno que construiu os hardwares.
>
> Bons códigos,
> -Daniel Negri
>
> ----- Original Message -----
> From: <[EMAIL PROTECTED]>
> To: "flexdev" <[email protected]>
> Sent: Friday, January 04, 2008 12:47 AM
> Subject: [flexdev] soma de datafield
>
> Gallera, alguem sabe se tem como eu somar um determinando datafild de
> todos os registro da minha grid?
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
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