Lançado Adianti Framework 7.6!
Clique aqui para saber mais
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?

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