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.
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.
Você está usando relatório tabular ou o pdf designer?
Nataniel,
Estou usando relatório tabular.
https://www.adianti.com.br/forum/pt/view_833?cabecalho-de-relatorio-usando-ttabl
Nataniel,
Obrigado por sua ajuda, mas sinceramente, como sou iniciante, não entendi nada.
Poderia, por favor, demonstrar através de um exemplo.
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();
}
}