Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Repetir rodapé e cabeçalho no PDF do Adianti Studio Boa noite pessoal. Tenho uma Lista de Cargos e criei o pdf no Designer, até ai tudo bem, abre certinho com os dados. O problema está quando existem mais de uma página ele não repete o cabeçalho e tampouco o rodapé. Existe um método para fazer isso? acho que sim, claro, só que já procurei, utilizei inclusive o recurso que o Pablo postou, mas nada, ou repete somente o cabeçalho ou rep...
CM
Repetir rodapé e cabeçalho no PDF do Adianti Studio  
Boa noite pessoal.

Tenho uma Lista de Cargos e criei o pdf no Designer, até ai tudo bem, abre certinho com os dados.
O problema está quando existem mais de uma página ele não repete o cabeçalho e tampouco o rodapé.
Existe um método para fazer isso? acho que sim, claro, só que já procurei, utilizei inclusive o recurso que o Pablo postou, mas nada, ou repete somente o cabeçalho ou repete o rodapé.
Se puderem ajudar, agradeço imensamente.

  1. <?php
  2. /**
  3.      * method onGenerate()
  4.      * Executed whenever the user clicks at the generate button
  5.      */
  6.     function onGenerate()
  7.     {
  8.         try
  9.         {
  10.             // open a transaction with database 'samples'
  11.             TTransaction::open('zeromeia');
  12.             
  13.             // load all customers
  14.             $repository = new TRepository('Cargos');
  15.             $criteria   = new TCriteria;
  16.             $Cargos $repository->load($criteria);
  17.             
  18.             $data $this->form->getData();
  19.             $this->form->validate();
  20.                         
  21.             $designer = new TPDFDesigner;
  22.             $designer->fromXml('app/reports/ListaCargos.pdf.xml');
  23.             $designer->generate();
  24.                                     
  25.             $fill TRUE;
  26.             $designer->gotoAnchorXY('');
  27.             $designer->SetFont('Arial'''8);
  28.             $designer->setFontColorRGB'#000000' );
  29.            
  30.                 
  31.                     // cabeçalho
  32.                     $designer->Image('http://zeromeia.com/apps/zeromeia/app/images/ZeroMeia_640x286.jpg',20,18,-300);
  33.                     $designer->SetY(75);
  34.                     $designer->SetFont('Arial'''18);
  35.                     $designer->setFontColorRGB'#000000' );
  36.                     $designer->Cell(56010utf8_decode('Lista de Cargos'),0,0,'R');
  37.                     $designer->SetxY(50,86);
  38.                     $designer->SetFont('Arial'''10);
  39.                     $designer->setFontColorRGB'#000000' );
  40.                     $designer->Cell(010utf8_decode('www.zeromeia.com'),0,0,'L');
  41. //            $designer->Line(20,826,564,826);             
  42.                     // grid background
  43.                     $fill = !$fill;
  44.                     
  45.                 // Dados da Lista do Relatório                   
  46.                 foreach ($Cargos as $Cargos)
  47.                 {
  48.                     $designer->gotoAnchorX('');
  49.                     $designer->Ln(18);
  50.                     $designer->Cell(6060$Cargos->Id00'C'$fill);
  51.                     $designer->Cell(20060utf8_decode($Cargos->descricao), 00'L'$fill);
  52.                 }
  53.                 
  54.                     // rodapé
  55.                     $designer->SetY(-12);
  56.                     
  57.                     $designer->SetFont('Arial'''8);
  58.                     $designer->setFontColorRGB'#000000' ); 
  59.                     $designer->Cell(59010utf8_decode('Pág. ').$designer->PageNo().' de {nb}',0,0,'R');                                         
  60.                     $designer->SetY(-12);
  61.                     $designer->Cell(12210utf8_decode('Zero Meia Tecnologia © 2018 '),0,0,'R'); 
  62.                     $designer->SetY(-12);
  63.                     $designer->Cell(340,10,utf8_decode("Impresso em ".date("d/m/Y H:i:s"."")),0,1,'R');
  64.                     $designer->SetY(-12);
  65.                     $designer->Cell(410,10,utf8_decode(" - ".TSession::getValue('username')),0,1,'R'); //nome do usuário            
  66.                
  67.             $file 'app/output/Lista_Clientes.pdf';
  68.             
  69.             if (!file_exists($file) OR is_writable($file))
  70.             {
  71.                 $designer->save($file);
  72.                 parent::openFile($file);
  73.             }
  74.             else
  75.             {
  76.                 throw new Exception(_t('Permission denied') . ': ' $file);
  77.             }
  78.             
  79.            // new TMessage('info', 'Relatório gerado. Por favor, habilite os popups no seu navegador.');
  80.             
  81.             // close the transaction
  82.             TTransaction::close();
  83.         }
  84.         catch (Exception $e// in case of exception
  85.         {
  86.             new TMessage('error''<b>Error</b> ' $e->getMessage());
  87.             TTransaction::rollback();
  88.         }
  89.     }
  90. ?>

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

Se o cabeçalho e rodapé foram criados através do designer e você quer manter dessa maneira, imagino que tenha que desabilitar a quebra automática de página e controlar manualmente, chamando a função $designer->generate(); para cada página que quiser adicionar.

Outra opção é usar as funções header e footer diretamente, pois a TPDFDesigner herda a FPDF:
www.fpdf.org/en/tutorial/tuto2.htm
CM

Beleza Nataniel, mas como fazer isso?
Já tentei utilizando este método conforme o Pablo informou, mas não dá certo.
Obrigado Amigo.
CM

Obrigado pelas dicas Nataniel, resolvi utilizando as dicas deste post:
www.adianti.com.br/forum/pt/view_851?criando-cabecalhos-e-rodapes-no

Reparei que se usarmos qualquer objeto no Designer ele não exibe na primeira página, então exclui todos os objetos e criei o PDF na grid e com a classe de cabeçalho e rodapé.

Muito obrigado mesmo amigo.