Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Relatórios em PDF Estou com a seguinte dúlvida: Estou criando um relatório utilizando a TPDFDesigner no meio do relatório quero gerar uma seção tabular posso chamar a TTableWriterPDF? ...
PC
Relatórios em PDF  
Fechado
Estou com a seguinte dúlvida:
Estou criando um relatório utilizando a TPDFDesigner no meio do relatório quero gerar uma seção tabular posso chamar a TTableWriterPDF?
  1. <?php
  2.     function onGenerate()
  3.     {
  4.         try
  5.         {
  6.             ttransaction::open('sispag');
  7.             
  8.             $object $this->form->getData();
  9.             $this->form->validate();            
  10.             
  11.             $repository = new TRepository('relatorio');
  12.             $criteria   = new TCriteria;
  13.             if($object->proposta_id)
  14.             {
  15.                $criteria->add(new TFilter('id','=',"{$object->proposta_id}"));   
  16.             }
  17.             $relatorios $repository->load($criteria);
  18.                         
  19.             
  20.             $designer = new TPDFDesigner;
  21.             $designer->fromXml('app/reports/relViagem2.pdf.xml');
  22.             $designer->generate();
  23.             
  24.             //$designer->SetFont('Sans Serif', 'B', 12);
  25.             $designer->setFontColorRGB'#000000' );
  26.             
  27.             if($relatorios)
  28.             {
  29.                  foreach($relatorios as $relatorio)
  30.                  {  
  31.                     $x=array($relatorio->id_item);
  32.                     $designer->SetFont('Times'''12.5);
  33.                     $designer->writeAtAnchor('proposta',        $relatorio->proposta);
  34.                     $designer->writeAtAnchor('despesa_de',      $relatorio->despesa_de);
  35.                     $designer->writeAtAnchor('solicitante',     $relatorio->solicitante);
  36.                     $designer->writeAtAnchor('cliente',         $relatorio->cliente);
  37.                     $designer->writeAtAnchor('cidade_1',        $relatorio->cidade);
  38.                     $designer->writeAtAnchor('estado_1',        $relatorio->estado_1);
  39.                     $designer->writeAtAnchor('cidade_2',        $relatorio->cidade_2);
  40.                     $designer->writeAtAnchor('estado_2',        $relatorio->estado_2);
  41.                     $designer->writeAtAnchor('tecnico',         utf8_decode($relatorio->tecnico));
  42.                     
  43.                     switch($relatorio->tipo_visita)
  44.                     {
  45.                         case '1':
  46.                             $designer->writeAtAnchor('visita''X');
  47.                             break;
  48.                         case '2':
  49.                             $designer->writeAtAnchor('implantacao''X');
  50.                             break;
  51.                         case '3';
  52.                             $designer->writeAtAnchor('treinamento''X');
  53.                         break;
  54.                         
  55.                         case '4';
  56.                             $designer->writeAtAnchor('outros''X');
  57.                         break;                        
  58.                     }
  59.                    
  60.                     
  61.                     switch($relatorio->tipo_transporte)
  62.                     {
  63.                          case '1':
  64.                              $designer->writeAtAnchor('proprio''X');
  65.                              break;
  66.                          case '2':
  67.                              $designer->writeAtAnchor('alugado''X');
  68.                              break;
  69.                          case '3':
  70.                              $designer->writeAtAnchor('publico''X');
  71.                              break;
  72.                          case '4':
  73.                              $designer->writeAtAnchor('taxi''X');
  74.                              break;
  75.                     }
  76.                     $designer->writeAtAnchor('partida',        $relatorio->data_inicio);                        
  77.                     $designer->writeAtAnchor('chegada',        $relatorio->data_final);
  78.                     $designer->writeAtAnchor('distancia',      $relatorio->distancia);
  79.                     $tipos=array();
  80.                     $tipos[]=array('tipo'=>$relatorio->tipo_despesa,'total'=>$relatorio->total_item);
  81.                          
  82.                    $widths = array(50,200,50);
  83.                    $tr = new TTableWriterPDF($widths);
  84.                 // create the document styles
  85.                 $tr->addStyle('title''Arial''10''BI',  '#ffffff''#407B49');
  86.                 $tr->addStyle('datap''Arial''10''',    '#000000''#869FBB');
  87.                 $tr->addStyle('datai''Arial''10''',    '#000000''#ffffff');
  88.                 $tr->addStyle('header''Times''16''BI''#ff0000''#FFF1B2');
  89.                 $tr->addStyle('footer''Times''12''BI''#2B2B2B''#B5FFB4');
  90.                 
  91.                 // add a header row
  92.                 $tr->addRow();
  93.                 $tr->addCell('Customers''center''header'5);
  94.                 
  95.                 // add titles row
  96.                 $tr->addRow();
  97.                 $tr->addCell('Code',      'left''title');
  98.                 $tr->addCell('Name',      'left''title');
  99.             
  100.                 // controls the background filling
  101.                 $colourFALSE;
  102.                 
  103.                 // data rows
  104.     
  105.                     foreach($tipos as $tp)
  106.                     {
  107.                          
  108.                         $style $colour 'datap' 'datai';
  109.                         $tr->addRow();
  110.                         $tr->addCell($tp['tipo'],                 'left'$style);
  111.                         $tr->addCell($tp['total'],               'left'$style);//                         $tr->addCell($customer->category_name    ,  'left', $style);
  112.                         $colour = !$colour;                         
  113.                          $tr->addStyle('title''Arial''10''BI',  '#ffffff''#407B49');
  114.                          $tr->addStyle('datap''Arial''10''',    '#000000''#869FBB');
  115.                          $tr->addStyle('datai''Arial''10''',    '#000000''#ffffff');
  116.                          $tr->addStyle('header''Times''16''BI''#ff0000''#FFF1B2');
  117.                          $tr->addStyle('footer''Times''12''BI''#2B2B2B''#B5FFB4');                         
  118.                        }
  119.                      }                
  120.                                           
  121.                  }
  122.                 
  123.                  $designer->SetFont('Arial','B',12);
  124.                  $designer->Ln(16);
  125.                  $designer->gotoAnchorX('details2');
  126.                  $designer->cell(550,12,utf8_decode('Total Geral'),0,0,'L',$fill);
  127.                  $designer->Cell(1,12,number_format((double)$relatorio->total_geral,2,',',''),0,0,'R',$fill);
  128.                  //$designer->writeAtAnchor('totgeral',number_format((double)$relatorio->total_geral,2,',',''));
  129.                  $designer->writeAtAnchor('adiantamento',number_format((double)$relatorio->adiantamento,2,',',''));
  130.                  
  131.                  $res=$relatorio->total_geral $relatorio->adiantamento;
  132.                  
  133.                  if($res<0)
  134.                  {
  135.                      $designer->SetFont('Arial','B',14);
  136.                      $designer->writeAtAnchor('devolver',number_format((double)$res*-1,2,',',''));
  137.                  }
  138.                  else
  139.                  {
  140.                      $designer->SetFont('Arial','B',14);
  141.                      $designer->writeAtAnchor('receber',number_format((double)$res,2,',',''));
  142.                  }
  143.                  
  144.                  $designer->SetFont('Arial','B',14);
  145.                  $designer->writeAtAnchor('data',date('d/m/Y'));
  146.             }
  147.      
  148.             $file 'app/output/relviagem3.pdf';
  149. ?>

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 (1)


PD

Oi Paulo,

Não, mas você pode utilizar qualquer método da FPDF, como o método cell(), uma vez que a classe TPDFDesigner é filha da classe FPDF. Caso você precise conhecer melhor a FPDF, segue o material:
fpdf.org/

Clique em "Manual"

Atenciosamente,
Pablo