Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Ajuda com calculo. Pessoal bom dia como sou novo com desenvolvimento com o adianti gostaria de uma ajuda dos demais colegas, o cenário e o seguinte: tenho que gerar um relatório onde ele pega os dados organiza por plano de contas esta organização eu consegui gerar no relatório já com os valores de cada item o problema que não estou conseguindo e na hora de fazer a varredura dos resultados mostrar a soma dos v...
RR
Ajuda com calculo.  
Pessoal bom dia como sou novo com desenvolvimento com o adianti gostaria de uma ajuda dos demais colegas, o cenário e o seguinte: tenho que gerar um relatório onde ele pega os dados organiza por plano de contas esta organização eu consegui gerar no relatório já com os valores de cada item o problema que não estou conseguindo e na hora de fazer a varredura dos resultados mostrar a soma dos valores por grupo alguém poderia me dar uma ajuda segue o código abaixo:

  1. <?php
  2. use Adianti\Widget\Wrapper\TQuickForm;
  3. use Adianti\Widget\Form\TEntry;
  4. use Adianti\Widget\Wrapper\ ">TDBSeekButton;
  5. use Adianti\Widget\Wrapper\TDBCombo;
  6. use Adianti\Widget\Form\TRadioButton;
  7. use Adianti\Widget\Form\TRadioGroup;
  8. use Adianti\Widget\Wrapper\TDBEntry;
  9. use Adianti\Control\TAction;
  10. use Adianti\Widget\Dialog\TMessage;
  11. use Adianti\Database\TTransaction;
  12. use Adianti\Database\TRepository;
  13. use Adianti\Database\TCriteria;
  14. use Adianti\Database\TFilter;
  15. /**
  16.  * PDF Designed Customer report
  17.  *
  18.  * @version    1.0
  19.  * @package    samples
  20.  * @subpackage tutor
  21.  * @author     Pablo Dall'Oglio
  22.  * @copyright  Copyright (c) 2006 Adianti Solutions Ltd. (http://www.adianti.com.br)
  23.  * @license    http://www.adianti.com.br/framework-license
  24.  */
  25. class RelatorioAnalitico extends TPage
  26. {
  27.     private $form// form
  28.     
  29.     /**
  30.      * Class constructor
  31.      */
  32.     function __construct()
  33.     {
  34.         parent::__construct();
  35.         
  36.         //cria o formulario
  37.         $this->form = new TQuickForm('form_Contas_Report');
  38.         $this->form->class 'tform';
  39.         $this->form->setFormTitle('Relatorio de Contas');
  40.         
  41.         //cria os campos
  42.                
  43.         $dt_inicio      = new TDate('dt_inicio');
  44.         $dt_fim         = new TDate('dt_fim');
  45.         
  46.         $lbl_dtfin = new TLabel('Data final:');
  47.         $this->form->addQuickFields('Per&iacute;odo  - Data inicial:', [$dt_inicio$lbl_dtfin$dt_fim]);
  48.         //adiciona a��o
  49.         $this->form->addQuickAction('Gerar Relatorio', new TAction(array($this'onGenerate')), 'fa:download blue');
  50.         parent::add($this->form);
  51.     }
  52.     
  53.     function onGenerate(){
  54.         try 
  55.         {
  56.             TTransaction::open('samples');
  57.             $object $this->form->getData();
  58.             
  59.             $repository1 = new TRepository('Plano');
  60.             $repository2 = new TRepository('Contas');
  61.              
  62.             $criteria1   = new TCriteria;
  63.             $criteria2   = new TCriteria;
  64.             if($object->dt_inicio AND $object->dt_fim)// verifica se o campo foi preenchido
  65.             {
  66.                 $criteria2->add(new TFilter('vencimento''between'''.$object->dt_inicio.''''.$object->dt_fim.''"order by plano_conta desc"));
  67.             }
  68.             
  69.             //carrega os objetos
  70.             $result1 $repository1->load($criteria1);
  71.             $result2 $repository2->load($criteria2);
  72.             
  73.             $data $this->form->getData();
  74.             $this->form->validate();
  75.             
  76.             $designer = new TPDFDesigner;
  77.             $designer->fromXml('app/reports/report.pdf.xml');
  78.             $designer->generate();
  79.             
  80.             $fill TRUE;
  81.             $designer->gotoAnchorXY('details');
  82.             $designer->SetFont('Arial'''10);
  83.             $designer->setFillColorRGB'#F9F9FF' );
  84.             
  85.             $designer->Ln(15);
  86.             $designer->Image('app/images/logo.jpg'2515150);
  87.             $designer->Cell(100);
  88.             $designer->Cell(0100,'Relatorio geral de contas.',0,1,'C');
  89.             $designer->Ln(15);
  90.             
  91.             
  92.             if($result2)
  93.             {
  94.                 
  95.                 
  96.                 
  97.                 foreach ($result1 as $row1)
  98.                 {
  99.                     $plano str_replace(" ","",$row1->descricao);
  100.                     $valorTotal 0;
  101.                     
  102.                     foreach($result2 as $row2)
  103.                     {
  104.                         $valorTotal 0;
  105.                         $plano_conta =  str_replace(" ","",$row2->plano_conta);
  106.             
  107.                         if($plano == $plano_conta)
  108.                         {
  109.                             $valorTotal += (float)$row2->valor;
  110.                             
  111.                             $designer->gotoAnchorX('details');
  112.                             $designer->Cell(3012$row2->idcontas10'C'$fill);
  113.                             $designer->Cell(23012utf8_decode($row2->fornecedor), 10'L'$fill);
  114.                             $designer->Cell(23012utf8_decode($row2->plano_conta), 10'L'$fill);
  115.                             $designer->Cell(12012utf8_decode('R$ '.$row2->valor), 10'L'$fill);
  116.                                                 $designer->Ln(12);
  117.                                                 
  118.                                                 
  119.                             // grid background
  120.                             $fill = !$fill;
  121.                                 
  122.                         }
  123.                                 
  124.                                 
  125.                     
  126.                     }
  127.  
  128.                 }
  129.             
  130.                 $file 'app/output/pdf_report.pdf';
  131.                 
  132.                 if (!file_exists($file) OR is_writable($file))
  133.                 {
  134.                     $designer->save($file);
  135.                     parent::openFile($file);
  136.                 }
  137.                 else
  138.                 {
  139.                     throw new Exception(_t('Permission denied') . ': ' $file);
  140.                 }
  141.                 
  142.                 new TMessage('info''Relat&oacute;rio gerado. Por favor, habilite os popups no navegador (apenas na web).');
  143.                 
  144.                 // close the transaction
  145.                 TTransaction::close();
  146.                 
  147.             }
  148.             
  149.         }
  150.         catch (Exception $e) {
  151.             new TMessage('error'$e->getMessage());
  152.             TTransaction::rollback(); //desfaz opera�oes.
  153.         }
  154.         
  155.     
  156.     }
  157.        
  158.  
  159. }
  160.         
  161. ?>


Relatorio geral de contas.

47 ROCHA E SOARES LTDA Materiais de limpeza R$ 957.00
67 CAPITAL EMBALAGENS Materiais de limpeza R$ 364.74
166 ROCHA E SOARES LTDA Materiais de limpeza R$ 1130.28
172 CAPITAL EMBALAGENS Materiais de limpeza R$ 716.68
Total R$ ? obs: esta parte que não estou conseguindo fazer dar total por grupo.

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (1)


NR

Você pode usar um array associativo para isso:
  1. <?php
  2. $totais_grupo[$grupo_do_item] += $valor_item;
  3. ?>