Problemas impressão Formulários de consultas gerado pelo Studio Olá Gerei um formulário de consulta pelo Studio, mas na hora de gerar o PDF pelo código criado pelo Studio, a formação do $form não é impresso igual à tela. A tela está em 2 colunas, mas no PDF é gravado numa única linha. No onPrint o $form é clonado para criar uma imagem do html gerado, mas mesmo assim não é gerado de forma correta. Alguém...
MG
Problemas impressão Formulários de consultas gerado pelo Studio  
Olá
Gerei um formulário de consulta pelo Studio, mas na hora de gerar o PDF pelo código criado pelo Studio, a formação do
$form
não é impresso igual à tela.
A tela está em 2 colunas, mas no PDF é gravado numa única linha.
No
onPrint
o
$form
é clonado para criar uma imagem do html gerado, mas mesmo assim não é gerado de forma correta.
Alguém passou por isso e pode me ajudar?

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


DS

mano

cola:
- modelo
- controller

senao fica meio complicado =)
MG

Sim, segue controller. Como é apenas exibir textos não vou enviar o model para ficar extenso o conteúdo:

 
  1. <?php
  2. /**
  3. * MaosObraFormView Form
  4. * @author MG Consultoria - marcelo@mgsistemas.com.br
  5. */
  6. class MaosObraFormView extends TPage
  7. {
  8. /**
  9. * Form constructor
  10. * @param $param Request
  11. */
  12. public function __construct( $param )
  13. {
  14. parent::__construct();
  15. parent::setTargetContainer('adianti_right_panel');
  16. $this->form = new BootstrapFormBuilder('form_MaosObra_View');
  17. $this->form->setFormTitle('MaosObra');
  18. $this->form->setColumnClasses(2, ['col-sm-3', 'col-sm-9']);
  19. $this->form->addHeaderActionLink( _t('Print'), new TAction([$this, 'onPrint'], ['key'=>$param['key'], 'static' => '1']), 'far:file-pdf red');
  20. $this->form->addHeaderActionLink( _t('Edit'), new TAction(['MaosObraForm', 'onEdit'], ['key'=>$param['key'], 'register_state'=>'true']), 'far:edit blue');
  21. $this->form->addHeaderActionLink(_t('Back'), new TAction(['MaosObraList','onReload']),'fa:arrow-left green');
  22. // vertical box container
  23. $container = new TVBox;
  24. $container->style = 'width: 100%';
  25. // $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  26. $container->add($this->form);
  27. parent::add($container);
  28. }
  29. /**
  30. * Show data
  31. */
  32. public function onEdit( $param )
  33. {
  34. try
  35. {
  36. TTransaction::open('app');
  37. $object = new MaosObra($param['key']);
  38. $label_id = new TLabel('Id:', '#333333', '', 'B');
  39. $label_tipo_profissional = new TLabel('Tipo Profissional:', '#333333', '', 'B');
  40. $label_hora_trabalhadas_mes = new TLabel('Hora Trabalhadas Mes:', '#333333', '', 'B');
  41. $label_salario = new TLabel('Salario:', '#333333', '', 'B');
  42. $text_id = new TTextDisplay($object->id, '#333333', '', '');
  43. $text_tipo_profissional = new TTextDisplay($object->tipo_profissional, '#333333', '', '');
  44. $text_hora_trabalhadas_mes = new TTextDisplay($object->hora_trabalhadas_mes, '#333333', '', '');
  45. $salario = number_format($object->salario,2,',',',');
  46. $text_salario = new TTextDisplay($salario, '#333333', '', '');
  47. $this->form->addFields([$label_id],[$text_id]);
  48. $this->form->addFields([$label_tipo_profissional],[$text_tipo_profissional]);
  49. $this->form->addFields([$label_hora_trabalhadas_mes],[$text_hora_trabalhadas_mes]);
  50. $this->form->addFields([$label_salario],[$text_salario]);
  51. TTransaction::close();
  52. }
  53. catch (Exception $e)
  54. {
  55. new TMessage('error', $e->getMessage());
  56. }
  57. }
  58. /**
  59. * Print view
  60. */
  61. public function onPrint($param)
  62. {
  63. try
  64. {
  65. $this->onEdit($param);
  66. // string with HTML contents
  67. $html = clone $this->form;
  68. $contents = file_get_contents('app/resources/styles-print.html') . $html->getContents();
  69. // converts the HTML template into PDF
  70. $dompdf = new \Dompdf\Dompdf();
  71. $dompdf->loadHtml($contents);
  72. $dompdf->setPaper('A4', 'portrait');
  73. $dompdf->render();
  74. $file = 'app/output/MaosObra-export.pdf';
  75. // write and open file
  76. file_put_contents($file, $dompdf->output());
  77. $window = TWindow::create('Export', 0.8, 0.8);
  78. $object = new TElement('object');
  79. $object->data = $file.'?rndval='.uniqid();
  80. $object->type = 'application/pdf';
  81. $object->style = "width: 100%; height:calc(100% - 10px)";
  82. $window->add($object);
  83. $window->show();
  84. }
  85. catch (Exception $e)
  86. {
  87. new TMessage('error', $e->getMessage());
  88. }
  89. }
  90. }
  91. ?>