Lançado Adianti Framework 7.6!
Clique aqui para saber mais
SUM - Total do Campo Olá, como posso atribuir um SUM nesta Coluna 'valor': // ficando: Valor 10 20 30 // onde 30 é a soma do resultado da soma de dados do campo valor, ou seja... o que estou precisando no momento // já usei as instruções abaixo: // definindo o formado do campo moeda $format_value...
GM
SUM - Total do Campo  
Olá,

como posso atribuir um SUM nesta Coluna 'valor':

  1. <?php
  2. $table->addCell($row['valor'], 'center'$style);
  3. ?>


// ficando: Valor 10 20 30 // onde 30 é a soma do resultado da soma de dados do campo valor, ou seja... o que estou precisando no momento // já usei as instruções abaixo: // definindo o formado do campo moeda $format_value = function($value) { if (is_numeric($value)) { return 'R$ '.number_format($value, 2, ',', '.'); } return $value; }; // atribuindo o formato ao campo $valor->setTransformer( $format_value ); // definindo o total $valor->setTotalFunction( function($values) { return array_sum((array) $values); });



como o $row já está trazendo o resultado deste campo, acredito que o exemplo acima que estou usando não seria o apropriado, neste caso qual seria?

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (3)


NR

Você está gerando um relatório tabular? As funções setTransformer e setTotalFunction são utilizadas em conjunto com datagrids, não vão funcionar no relatório tabular.

Você vai precisar calcular na mão. Basta ir somando dentro do foreach e no final criar uma linha para exibir o total:
  1. <?php
  2. $total 0;
  3. foreach ....{
  4.     $table->addCell($row['valor'], 'center'$style);
  5.     $total += $row['valor'];
  6. }
  7. ?>
GM

Top, ajudou bastante...

no seu exemplo ficou a soma para cada registro e não agrupada mostrando na ultima linha de resultado.

usando seu exemplo o resultado ficou assim:

  1. <?php
  2.             $total 0;
  3.             foreach ....{
  4.                        $total += $row['valor'];                                       // total da coluna
  5.                        if($i == $qtlinhas){
  6.                               $table->addRow();                                     // nova linha pro total
  7.                               $table->addCell($total'right''footer'7);  // total resultado
  8.                         }
  9.                         $i++;
  10.              }
  11. ?>


Obrigado Nataniel
GM

Correção:

Release 3 kkk

  1. <?php
  2.                     $total 0;                         // total  
  3.                     $i 1;
  4.                     $qtlinhas sizeof($data);
  5.                     foreach ($data as $row)
  6.                     {
  7.                         $style $colour 'datap' 'datai';
  8.                         
  9.                         $table->addRow();
  10.                         $table->addCell($row['ID'], 'center'$style);
  11.                         ...................................
  12.                         ...................................
  13.                         ...................................
  14.                         $table->addCell('R$ '$row['valor'], 'center'$style);
  15.                         $colour = !$colour;
  16.                         
  17.                         $total += $row['valor'];  // total da coluna
  18.                         if($i == $qtlinhas){
  19.                               $table->addRow();         // nova linha pro total
  20.                               $table->addCell('R$ '$total'right''footer'7);  // total resultado
  21.                         }
  22.                         $i++;
  23.                     }                   
  24.                     $table->setFooterCallback( function($table) {
  25.                         $table->addRow();
  26.                         $table->addCell(date('d-m-Y h:i:s'), 'center''footer'7);
  27.                     });
  28.                     
  29. ?>


é o Relatório de Consulta Nataniel, o tabular é com base num model né, esse aí é c base na select relacional etc, acho q é a mesma lógica né.

Obrigado pela dica....