NJ
Quebra de linha no Relatório
Bom dia, estou tentando fazer quebra de linha no Tabular Relatório View e não consigo.
OBs: estou usando versão 5.0.
Segue imagem do problema
foreach ($criteriaobs as $criteriaobs_item)
{
$style = $colour ? 'datap' : 'datai';
$tr->addRow();
$tr->addCell($criteriaobs_item->obs, 'left',$style,5);
$colour = !$colour;
}
OBs: estou usando versão 5.0.
Segue imagem do problema
foreach ($criteriaobs as $criteriaobs_item)
{
$style = $colour ? 'datap' : 'datai';
$tr->addRow();
$tr->addCell($criteriaobs_item->obs, 'left',$style,5);
$colour = !$colour;
}
Boa tarde Nelçon.
Fiz da seguinte forma:
$tr->addRow();
$tr->addCell('Descrição do evento', 'left', 'title');
$tr1 = $tr->getNativeWriter();
$tr1->MultiCell(594,18,utf8_decode($evento->description),1,'L', false);
Espero ter ajudado.
Atenciosamente,
Ailton Furtado.
Caro Ailton Furtado, ajudou em partes, olha como ficou:
$tr->addRow();
$tr->addCell('Observações','center','title');
$tr1 = $tr->getNativeWriter();
$tr1->MultiCell(594,18,utf8_decode($criteriaobs_item->obs),1,'L', false);
$colour = !$colour;
Boa tarde Nelçon. Mas fez a quebra de linha como você queria? Nos meus relatórios funciona corretamente.
Atenciosamente,
Ailton Furtado.
Não, cada linha repete as informações das observações e ultrapassou os limites da tabela acima.
Noa noite Nelson. Você pode postar o código completo da geração do seu relatório? Para que possa dar uma olhada?
Atenciosamente,
Ailton Furtado
function onGerar()
{
try
{
// obtem dados do form para um active record Pesquisa
$object = $this->form->getData();
if ( !empty($object->rel_opcao) )
{
// abre transação com a base de dados 'sistema'
TTransaction::open('sistemas');
$repository_pesquisa = new TRepository('pesquisa');
$criteria_pesquisa = new TCriteria;
$pesquisas = $repository_pesquisa->load($criteria_pesquisa);
$format = $object->tipo_saida;
if ($pesquisas)
{
$repository_sistema = new TRepository('sistema');
$criteria_sistema= new TCriteria;
$sistema_s = $repository_sistema->load($criteria_sistema);
$widths = array(100, 100, 100, 100, 100);
switch ($format)
{
case 'html':
$tr = new TTableWriterHTML($widths);
break;
case 'pdf':
$tr = new TTableWriterPDF($widths,'L');
break;
case 'rtf':
if (!class_exists('PHPRtfLite_Autoloader'))
{
PHPRtfLite::registerAutoloader();
}
$tr = new TTableWriterRTF($widths);
break;
}
if (!empty($tr))
{
// create the document styles
$tr->addStyle('title', 'Arial', '10', 'B', '#000000', '#ffffff');
$tr->addStyle('datap', 'Arial', '10', '', '#000000', '#e3e3e3', 'LR');
$tr->addStyle('datai', 'Arial', '10', '', '#000000', '#ffffff','LR');
$tr->addStyle('header', 'Arial', '12', 'B', '#000000', '#ffffff');
$tr->addStyle('footer', 'Arial', '10', 'B', '#000000', '#ffffff');
// add a header row
$tr->addRow();
$tr->addCell('Relatório de Satisfação de Sistemas - CCCPM', 'center', 'header', 5);
$tr->addRow();
$sistema = new sistema($object->rel_opcao);
$tr->addCell($sistema->sistema, 'center', 'header', 10);
// add titles row
$tr->addRow();
$tr->addCell('Questões', 'left', 'title');
$tr->addCell('Muito Satisfeito', 'left', 'title');
$tr->addCell('Satisfeito', 'left', 'title');
$tr->addCell('Insatisfeito', 'left', 'title');
$tr->addCell('Muito Insatisfeito', 'left', 'title');
// Criação de Critérios de contagem para Apresentação
$tr->addRow();
$tr->addCell('Apresentação', 'left', 'datap');
$criteria1 = new TCriteria;
$criteria1->add(new TFilter('sistema_id', '=', $object->rel_opcao));
$criteria1->add(new TFilter('apresentacao', '=', '1'));
$count1 = $repository_pesquisa->count($criteria1);
$tr->addCell($count1, 'left', 'datap');
$criteria2 = new TCriteria;
$criteria2->add(new TFilter('sistema_id', '=', $object->rel_opcao));
$criteria2->add(new TFilter('apresentacao', '=', '2'));
$count2 = $repository_pesquisa->count($criteria2);
$tr->addCell($count2, 'left', 'datap');
$criteria3 = new TCriteria;
$criteria3->add(new TFilter('sistema_id', '=', $object->rel_opcao));
$criteria3->add(new TFilter('apresentacao', '=', '3'));
$count3 = $repository_pesquisa->count($criteria3);
$tr->addCell($count3, 'left', 'datap');
$criteria4 = new TCriteria;
$criteria4->add(new TFilter('sistema_id', '=', $object->rel_opcao));
$criteria4->add(new TFilter('apresentacao', '=', '4'));
$count4 = $repository_pesquisa->count($criteria4);
$tr->addCell($count4, 'left', 'datap');
// Criação de Critérios de contagem para Facilidade
$tr->addRow();
$tr->addCell('Facilidade', 'left', 'datai');
$criteria5 = new TCriteria;
$criteria5->add(new TFilter('sistema_id', '=', $object->rel_opcao));
$criteria5->add(new TFilter('facilidade', '=', '1'));
$count5 = $repository_pesquisa->count($criteria5);
$tr->addCell($count5, 'left', 'datai');
$criteria6 = new TCriteria;
$criteria6->add(new TFilter('sistema_id', '=', $object->rel_opcao));
$criteria6->add(new TFilter('facilidade', '=', '2'));
$count6 = $repository_pesquisa->count($criteria6);
$tr->addCell($count6, 'left', 'datai');
$criteria7 = new TCriteria;
$criteria7->add(new TFilter('sistema_id', '=', $object->rel_opcao));
$criteria7->add(new TFilter('facilidade', '=', '3'));
$count7 = $repository_pesquisa->count($criteria7);
$tr->addCell($count7, 'left', 'datai');
$criteria8 = new TCriteria;
$criteria8->add(new TFilter('sistema_id', '=', $object->rel_opcao));
$criteria8->add(new TFilter('facilidade', '=', '4'));
$count8 = $repository_pesquisa->count($criteria8);
$tr->addCell($count8, 'left', 'datai');
// Criação de Critérios de contagem para Tempo
$tr->addRow();
$tr->addCell('Tempo', 'left', 'datap');
$criteria9 = new TCriteria;
$criteria9->add(new TFilter('sistema_id', '=', $object->rel_opcao));
$criteria9->add(new TFilter('tempo', '=', '1'));
$count9 = $repository_pesquisa->count($criteria9);
$tr->addCell($count9, 'left', 'datap');
$criteria10 = new TCriteria;
$criteria10->add(new TFilter('sistema_id', '=', $object->rel_opcao));
$criteria10->add(new TFilter('tempo', '=', '2'));
$count10 = $repository_pesquisa->count($criteria10);
$tr->addCell($count10, 'left', 'datap');
$criteria11 = new TCriteria;
$criteria11->add(new TFilter('sistema_id', '=', $object->rel_opcao));
$criteria11->add(new TFilter('tempo', '=', '3'));
$count11 = $repository_pesquisa->count($criteria11);
$tr->addCell($count11, 'left', 'datap');
$criteria12 = new TCriteria;
$criteria12->add(new TFilter('sistema_id', '=', $object->rel_opcao));
$criteria12->add(new TFilter('tempo', '=', '4'));
$count12 = $repository_pesquisa->count($criteria12);
$tr->addCell($count12, 'left', 'datap');
// Criação de Critérios de contagem para Suporte
$tr->addRow();
$tr->addCell('Suporte', 'left', 'datai');
$criteria13 = new TCriteria;
$criteria13->add(new TFilter('sistema_id', '=', $object->rel_opcao));
$criteria13->add(new TFilter('suporte', '=', '1'));
$count13 = $repository_pesquisa->count($criteria13);
$tr->addCell($count13, 'left', 'datai');
$criteria14 = new TCriteria;
$criteria14->add(new TFilter('sistema_id', '=', $object->rel_opcao));
$criteria14->add(new TFilter('suporte', '=', '2'));
$count14 = $repository_pesquisa->count($criteria14);
$tr->addCell($count14, 'left', 'datai');
$criteria15 = new TCriteria;
$criteria15->add(new TFilter('sistema_id', '=', $object->rel_opcao));
$criteria15->add(new TFilter('suporte', '=', '3'));
$count15 = $repository_pesquisa->count($criteria15);
$tr->addCell($count15, 'left', 'datai');
$criteria16 = new TCriteria;
$criteria16->add(new TFilter('sistema_id', '=', $object->rel_opcao));
$criteria16->add(new TFilter('suporte', '=', '4'));
$count16 = $repository_pesquisa->count($criteria16);
$tr->addCell($count16, 'left', 'datai');
// Criação de Critérios de contagem para Manual
$tr->addRow();
$tr->addCell('Manual', 'left', 'datap');
$criteria17 = new TCriteria;
$criteria17->add(new TFilter('sistema_id', '=', $object->rel_opcao));
$criteria17->add(new TFilter('manual', '=', '1'));
$count17 = $repository_pesquisa->count($criteria17);
$tr->addCell($count17, 'left', 'datap');
$criteria18 = new TCriteria;
$criteria18->add(new TFilter('sistema_id', '=', $object->rel_opcao));
$criteria18->add(new TFilter('manual', '=', '2'));
$count18 = $repository_pesquisa->count($criteria18);
$tr->addCell($count18, 'left', 'datap');
$criteria19 = new TCriteria;
$criteria19->add(new TFilter('sistema_id', '=', $object->rel_opcao));
$criteria19->add(new TFilter('suporte', '=', '3'));
$count19 = $repository_pesquisa->count($criteria19);
$tr->addCell($count19, 'left', 'datap');
$criteria20 = new TCriteria;
$criteria20->add(new TFilter('sistema_id', '=', $object->rel_opcao));
$criteria20->add(new TFilter('manual', '=', '4'));
$count20 = $repository_pesquisa->count($criteria20);
$tr->addCell($count20, 'left', 'datap');
// Criação de Critérios para Observação
$tr->addRow();
$criteria21 = new TCriteria;
$criteria21->add(new TFilter('sistema_id', '=', $object->rel_opcao));
$criteria21->add(new TFilter('obs', '<>', ''));
$criteriaobs = $repository_pesquisa->load($criteria21);
$colour = FALSE;
foreach ($criteriaobs as $criteriaobs_item)
{
$style = $colour ? 'datap' : 'datai';
$tr->addRow();
$tr->addCell($criteriaobs_item->obs, 'left',$style,5);
$colour = !$colour;
}
// footer row
$tr->addRow();
$tr->addCell('emitido em '.date('d-m-Y H:i:s').'h', 'center', 'footer', 5);
// stores the file
if (!file_exists("app/output/tabular.{$format}") OR is_writable("app/output/tabular.{$format}"))
{
$tr->save("app/output/tabular.{$format}");
parent::openFile("app/output/tabular.{$format}");
}
else
{
throw new Exception(_t('Permission denied') . ': ' . "app/output/tabular.{$format}");
}
// shows the success message
new TMessage('info', 'Relatório gerado. Por favor, habilite os popups no navegador.');
}
}
else
{
new TMessage('error', 'Nenhum registro encontrado');
}
// fill the form with the active record data
$this->form->setData($object);
// close the transaction
TTransaction::close();
}
else
{
new TMessage('error', 'Selecione um Tipo de Relatório');
}
}
catch (Exception $e) // in case of exception
{
// shows the exception error message
new TMessage('error', 'Error ' . $e->getMessage());
// undo all pending operations
TTransaction::rollback();
}
}
}