Quebrar Titulos e dados do relatório PDF Amigos, Preciso da ajuda para alterar a classe onGenerate, na quebra de títulos e dados, como também repetir o cabeço e os títulos nas demais páginas do relatório....
ST
Quebrar Titulos e dados do relatório PDF  
Amigos,
Preciso da ajuda para alterar a classe onGenerate, na quebra de títulos e dados, como também repetir o cabeço e os títulos nas demais páginas do relatório.

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


NR

Você está usando relatório tabular ou o pdf designer?
ST

Nataniel,

Estou usando relatório tabular.
NR

https://www.adianti.com.br/forum/pt/view_833?cabecalho-de-relatorio-usando-ttabl
ST

Nataniel,
Obrigado por sua ajuda, mas sinceramente, como sou iniciante, não entendi nada.
Poderia, por favor, demonstrar através de um exemplo.
ST

Preciso que me oriente onde devo alterar no código.
Segue abaixo o código:

function onGeneratePDF()
{
try
{
// open a transaction with database 'perdcomp'
TTransaction::open('perdcomp');

// get the form data into an active record
$formdata = $this->form->getData();




$repository = new TRepository('Perdcomp');
$criteria = new TCriteria;
$criteria->add(new TFilter('system_unit_id','=',TSession::getValue('userunitid')));
// return Perdcomp::getObjects($criteria);


if ($formdata->perdcomp_id)
{
$criteria->add(new TFilter('perdcomp_id', 'like', "%{$formdata->perdcomp_id}%"));
}

if ($formdata->DataCriacao)
{
$criteria->add(new TFilter('DataCriacao', '>=', "{$formdata->DataCriacao}"));
}

if ($formdata->DataCriacao1)
{
$criteria->add(new TFilter('DataCriacao', '<=', "{$formdata->DataCriacao1}"));
}

if ($formdata->DataTransmissao)
{
$criteria->add(new TFilter('DataTransmissao', '>=', "{$formdata->DataTransmissao}"));
}

if ($formdata->DataTransmissao1)
{
$criteria->add(new TFilter('DataTransmissao', '<=', "{$formdata->DataTransmissao1}"));
}


if ($formdata->Nr_Perdcomp)
{
$criteria->add(new TFilter('Nr_Perdcomp', 'like', "%{$formdata->Nr_Perdcomp}%"));
}
if ($formdata->TipoDocumento_id)
{
$criteria->add(new TFilter('TipoDocumento_id', 'like', "%{$formdata->TipoDocumento_id}%"));
}
if ($formdata->OrigemDocumento_id)
{
$criteria->add(new TFilter('OrigemDocumento_id', 'like', "%{$formdata->OrigemDocumento_id}%"));
}
if ($formdata->TipoCredito_id)
{
$criteria->add(new TFilter('TipoCredito_id', 'like', "%{$formdata->TipoCredito_id}%"));
}
if ($formdata->Exercicio)
{
$criteria->add(new TFilter('Exercicio', 'like', "%{$formdata->Exercicio}%"));
}
if ($formdata->TipoImposto_id)
{
$criteria->add(new TFilter('TipoImposto_id', 'like', "%{$formdata->TipoImposto_id}%"));
}
if ($formdata->PerdcompOriginal)
{
$criteria->add(new TFilter('PerdcompOriginal', 'like', "%{$formdata->PerdcompOriginal}%"));
}
if ($formdata->TipoSituacao_id)
{
$criteria->add(new TFilter('TipoSituacao_id', 'like', "%{$formdata->TipoSituacao_id}%"));
}



$objects = $repository->load($criteria, FALSE);

// $format = $formdata->output_type_pdf;
$format = 'pdf';

if ($objects)
{
$widths = array(15,23,23,12,47,60,25,45,25,50,47,47,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21);

$tr = new TTableWriterPDF($widths);


// create the document styles
/ $tr->addStyle('title', 'Arial', '5', 'B', '#ffffff', '#A3A3A3');
$tr->addStyle('datap', 'Arial', '5', '', '#000000', '#EEEEEE');
$tr->addStyle('datai', 'Arial', '5', '', '#000000', '#ffffff');
$tr->addStyle('header', 'Arial', '5', '', '#ffffff', '#6B6B6B');
$tr->addStyle('footer', 'Times', '4', 'I', '#000000', '#A3A3A3');

// add a header row
//$tr->SetFont('Arial', '', 8);
$tr->addRow();
$tr->addCell('Perdcomp', 'center', 'header', 20);
$pdf->Cell(30,10,'Title',1,0,'C');

// add titles row
$tr->addRow();
$tr->addCell('Código','center','title');
$tr->addCell('Criação','center', 'title');
$tr->addCell('Transmissão', 'center', 'title');
$tr->addCell('Seq', 'center', 'title');
$tr->addCell('Nº Perdcomp', 'center', 'title');
$tr->addCell('Tipo Documento','center', 'title');
$tr->addCell('Documento', 'center', 'title');
$tr->addCell('Tipo Credito', 'center', 'title');
$tr->addCell('Iimposto', 'center', 'title');
$tr->addCell('Perdcomp Original', 'center', 'title');
$tr->addCell('Situação', 'center', 'title');
$tr->addCell('Cancelamento', '', 'title');
$tr->addCell('Crédito Original Inicial', '', 'title');
$tr->addCell('Crédito Original Disponível', '', 'title');
$tr->addCell('Crédito Original Transmissão', '', 'title');
$tr->addCell('Selic Acumulada', '', 'title');
$tr->addCell('Crédito Atualizado', '', 'title');
$tr->addCell('Débitos Documento', '', 'title');
$tr->addCell('Credito Original Utilizado Documento','','title');
$tr->addCell('Saldo Crédito Original','', 'title');


// controls the background filling
$colour= FALSE;

// data rows

foreach ($objects as $object)
{

$style = $colour ? 'datap' : 'datai';
$tr->addRow();
$tr->addCell($object->perdcomp_id, 'right', $style);
$tr->addCell(TDate::date2br($object->DataCriacao),'left',$style);
$tr->addCell(TDate::date2br($object->DataTransmissao),'left', $style);
$tr->addCell($object->Sequencial, 'left', $style);
$tr->addCell($object->Nr_Perdcomp, 'left', $style);
$tr->addCell($object->tipo_documento, 'left', $style);
$tr->addCell($object->origem_documento, 'left', $style);
$tr->addCell($object->tipo_credito, 'left', $style);
$tr->addCell($object->tipo_imposto, 'left', $style);
$tr->addCell($object->PerdcompOriginal, 'left', $style);
$tr->addCell($object->tipo_servico, 'left', $style);
$tr->addCell($object->Cancelamento, 'left', $style);
$tr->addCell(number_format($object->CreditoOriginalInicial,2,',','.'), 'right', $style);
$tr->addCell(number_format($object->CreditoOriginalDisponivel,2,',','.'), 'right', $style);
$tr->addCell(number_format($object->CreditoOriginalTransmissao,2,',','.'), 'right', $style);
$tr->addCell(number_format($object->SelicAcumulada,2,',','.'), 'right', $style);
$tr->addCell(number_format($object->CreditoAtualizado,2,',','.'), 'right', $style);
$tr->addCell(number_format($object->DebitosDocumento,2,',','.'), 'right', $style);
$tr->addCell(number_format($object->CreditoOriginalUtilizadoDocumento,2,',','.'), 'right', $style);
$tr->addCell(number_format($object->SaldoCreditoOriginal,2,',','.'), 'right', $style);


$colour = !$colour;
}

// footer row
$tr->addRow();
$tr->addCell(date('d/m/yyyy h:i:s'), 'center', 'footer', 20);
// stores the file


// $target_path = 'tmp/';
$source_path = "app/output/". TSession::getValue('userunitid');


if (!file_exists($source_path))
{
mkdir($source_path, 0777,true);
}



if (!file_exists("app/output/" . TSession::getValue('userunitid') . "/" . "Perdcomp.{$format}") OR is_writable("app/output/" . TSession::getValue('userunitid') . "/" . "Perdcomp.{$format}"))
{
$tr->save("app/output/" . TSession::getValue('userunitid') . "/" . "Perdcomp.{$format}");
}
else
{
throw new Exception(_t('Permission denied') . ': ' . "app/output/" . TSession::getValue('userunitid') . "/" . "Perdcomp.{$format}");
}

// open the report file
parent::openFile("app/output/" . TSession::getValue('userunitid') . "/" . "Perdcomp.{$format}");

// shows the success message
new TMessage('info', 'Relatório Gerado. Por favor, habilite o popups.');



}
else
{
new TMessage('info', 'Não existe registro para a consulta');
}

// fill the form with the active record data
$this->form->setData($formdata);

// close the transaction
TTransaction::close();
}
catch (Exception $e) // in case of exception
{
// shows the exception error message
new TMessage('error', 'Error ' . $e->getMessage());

// undo all pending operations
TTransaction::rollback();
}

}
NR

<?php// funcao onGeneratePDF$tr = new TTableWriterPDF($widths); $fpdf = $tr->getNativeWriter();$fpdf->setHeaderCallback(array($this,'suaFuncao'));$this->suaFuncao($fpdf);// sua Funcaofunction suaFuncao($pdf){    $pdf->SetFont('Arial','B',15);     // Move to the right     $pdf->Cell(80);     // Title     $pdf->Cell(30,10,'Title',1,0,'C');     // Line break     $pdf->Ln(20); }?>