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. * Class constructor
  30. */
  31. function __construct()
  32. {
  33. parent::__construct();
  34. //cria o formulario
  35. $this->form = new TQuickForm('form_Contas_Report');
  36. $this->form->class = 'tform';
  37. $this->form->setFormTitle('Relatorio de Contas');
  38. //cria os campos
  39. $dt_inicio = new TDate('dt_inicio');
  40. $dt_fim = new TDate('dt_fim');
  41. $lbl_dtfin = new TLabel('Data final:');
  42. $this->form->addQuickFields('Per&iacute;odo - Data inicial:', [$dt_inicio, $lbl_dtfin, $dt_fim]);
  43. //adiciona a��o
  44. $this->form->addQuickAction('Gerar Relatorio', new TAction(array($this, 'onGenerate')), 'fa:download blue');
  45. parent::add($this->form);
  46. }
  47. function onGenerate(){
  48. try
  49. {
  50. TTransaction::open('samples');
  51. $object = $this->form->getData();
  52. $repository1 = new TRepository('Plano');
  53. $repository2 = new TRepository('Contas');
  54. $criteria1 = new TCriteria;
  55. $criteria2 = new TCriteria;
  56. if($object->dt_inicio AND $object->dt_fim)// verifica se o campo foi preenchido
  57. {
  58. $criteria2->add(new TFilter('vencimento', 'between', ''.$object->dt_inicio.'', ''.$object->dt_fim.'', "order by plano_conta desc"));
  59. }
  60. //carrega os objetos
  61. $result1 = $repository1->load($criteria1);
  62. $result2 = $repository2->load($criteria2);
  63. $data = $this->form->getData();
  64. $this->form->validate();
  65. $designer = new TPDFDesigner;
  66. $designer->fromXml('app/reports/report.pdf.xml');
  67. $designer->generate();
  68. $fill = TRUE;
  69. $designer->gotoAnchorXY('details');
  70. $designer->SetFont('Arial', '', 10);
  71. $designer->setFillColorRGB( '#F9F9FF' );
  72. $designer->Ln(15);
  73. $designer->Image('app/images/logo.jpg', 25, 15, 150);
  74. $designer->Cell(100);
  75. $designer->Cell(0, 100,'Relatorio geral de contas.',0,1,'C');
  76. $designer->Ln(15);
  77. if($result2)
  78. {
  79. foreach ($result1 as $row1)
  80. {
  81. $plano = str_replace(" ","",$row1->descricao);
  82. $valorTotal = 0;
  83. foreach($result2 as $row2)
  84. {
  85. $valorTotal = 0;
  86. $plano_conta = str_replace(" ","",$row2->plano_conta);
  87. if($plano == $plano_conta)
  88. {
  89. $valorTotal += (float)$row2->valor;
  90. $designer->gotoAnchorX('details');
  91. $designer->Cell(30, 12, $row2->idcontas, 1, 0, 'C', $fill);
  92. $designer->Cell(230, 12, utf8_decode($row2->fornecedor), 1, 0, 'L', $fill);
  93. $designer->Cell(230, 12, utf8_decode($row2->plano_conta), 1, 0, 'L', $fill);
  94. $designer->Cell(120, 12, utf8_decode('R$ '.$row2->valor), 1, 0, 'L', $fill);
  95. $designer->Ln(12);
  96. // grid background
  97. $fill = !$fill;
  98. }
  99. }
  100. }
  101. $file = 'app/output/pdf_report.pdf';
  102. if (!file_exists($file) OR is_writable($file))
  103. {
  104. $designer->save($file);
  105. parent::openFile($file);
  106. }
  107. else
  108. {
  109. throw new Exception(_t('Permission denied') . ': ' . $file);
  110. }
  111. new TMessage('info', 'Relat&oacute;rio gerado. Por favor, habilite os popups no navegador (apenas na web).');
  112. // close the transaction
  113. TTransaction::close();
  114. }
  115. }
  116. catch (Exception $e) {
  117. new TMessage('error', $e->getMessage());
  118. TTransaction::rollback(); //desfaz opera�oes.
  119. }
  120. }
  121. }
  122. ?>


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 Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework 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. ?>