Conheça as melhorias da versão 8.0, 8.1, 8.2!
Clique aqui para saber mais
Data atual em relatório PDF Bom dia, Estou tentando adicionar a data atual com javascript em um relatório PDF usando uma função onPrint que gera o documento PDF apartir de um html, porém, a data não é visualizada no PDF depois que ele é gerado. Alguem pode me ajudar? segue código: ...
ET
Data atual em relatório PDF  
Bom dia,

Estou tentando adicionar a data atual com javascript em um relatório PDF usando uma função onPrint que gera o documento PDF apartir de um html, porém, a data não é visualizada no PDF depois que ele é gerado. Alguem pode me ajudar?

segue código:

 
  1. <?php
  2. /**
  3. * CidadeFormView Form
  4. * @author <your name here>
  5. */
  6. class CidadeFormView extends TPage
  7. {
  8. protected $form; // form
  9. /**
  10. * Form constructor
  11. * @param $param Request
  12. */
  13. public function __construct( $param )
  14. {
  15. parent::__construct();
  16. TTransaction::open('microerp');
  17. $this->form = new BootstrapFormBuilder('form_Cidade');
  18. $this->form->setFormTitle('Cidade');
  19. $label1 = new TLabel('Id:', '#333333', '12px', '');
  20. $label2 = new TLabel('Cidade:', '#333333', '12px', '');
  21. $label3 = new TLabel('UF:', '#333333', '12px', '');
  22. $label4 = new TLabel('Bairro:', '#333333', '12px', '');
  23. $cidade = new Cidade($param['key']);
  24. $text1 = new TTextDisplay($cidade->id, '#333333', '12px', '');
  25. $text2 = new TTextDisplay($cidade->nome, '#333333', '12px', '');
  26. $text3 = new TTextDisplay($cidade->uf, '#333333', '12px', '');
  27. $text4 = new TTextDisplay($cidade->bairro, '#333333', '12px', '');
  28. $this->form->addFields([$label1],[$text1]);
  29. $this->form->addFields([$label2],[$text2]);
  30. $this->form->addFields([$label3],[$text3]);
  31. $this->form->addFields([$label4],[$text4]);
  32. $this->form->addHeaderAction('Imprimir', new TAction(['CidadeFormView', 'onPrint'],['key'=>$cidade->id]), 'fa:file-pdf-o red');
  33. // vertical box container
  34. $container = new TVBox;
  35. $container->style = 'width: 100%';
  36. $container->class = 'formView-container';
  37. $container->add(new TXMLBreadCrumb('menu.xml', 'CidadeList'));
  38. $container->add($this->form);
  39. TTransaction::close();
  40. parent::add($container);
  41. }
  42. /**
  43. * Imprime o cidade
  44. */
  45. public function onPrint($param)
  46. {
  47. try
  48. {
  49. TTransaction::open('microerp');
  50. $object = Cidade::find($param['key']);
  51. if ($object)
  52. {
  53. $html = new AdiantiHTMLDocumentParser('app/documents/CidadeDocument.html', 'A4', 'portrait');
  54. $html->setMaster($object);
  55. $html->process();
  56. $output = $html->getContents();
  57. $document = 'tmp/'.uniqid().'.pdf';
  58. $html = AdiantiHTMLDocumentParser::newFromString($output);
  59. $html->saveAsPDF($document);
  60. parent::openFile($document);
  61. new TMessage('info', _t('Document successfully generated'));
  62. }
  63. TTransaction::close();
  64. }
  65. catch (Exception $e)
  66. {
  67. throw new Exception($e->getMessage());
  68. }
  69. }
  70. public function onShow()
  71. {
  72. }
  73. }
  74. //Arquivo HTML de onde saem as informações para gerar o PDF
  75. <br>
  76. <br>
  77. <p>Data: <span id="datetime"></span></p>
  78. <script>
  79. var dt = new Date();
  80. document.getElementById("datetime").innerHTML = (("0"+dt.getDate()).slice(-2)) +"."+ (("0"+(dt.getMonth()+1)).slice(-2)) +"."+ (dt.getFullYear()) +" "+ (("0"+dt.getHours()).slice(-2)) +":"+ (("0"+dt.getMinutes()).slice(-2));
  81. </script>
  82. <table class="mce-table" style="border-collapse: collapse; border: 1px solid black; height: 118px;" border="1" width="930" cellspacing="0" cellpadding="5">
  83. <tbody>
  84. <tr>
  85. <td style="width: 411px; text-align: center" colspan="2"><strong>Ficha de cadastro de endereço</strong></td>
  86. </tr>
  87. <tr>
  88. <td style="width: 411px; text-align: left" colspan="2">
  89. Código: {$id}
  90. <br><br>Cidade: {$nome}
  91. <br><br>UF: {$uf}
  92. <br><br>Bairro: {$bairro}
  93. </td>
  94. </tr>
  95. </tbody>
  96. </table>

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


PC

 
  1. <?php
  2. $nome_campo->setValue(date("d/m/Y"));
  3. ?>
PC

Erikson. fica melhor assim, busca data atual e não deixa editá-la.
 
  1. <?php
  2. $nome_campo->setValue(date("d/m/Y"));
  3. $nome_campo->setEditable(FALSE);
  4. ?>
ET

O brigado pela ajuda Pedro Celso, mas preciso exibir a data em uma tag <p> ou dentro de uma tabela html. O pdf é gerado a partir de uma view html e não de um form.
</p>
NR

Você pode criar uma variável no html({$dt_atual}, por exemplo) e adicionar um atributo com o mesmo nome em $object contendo a data atual.
ET

Nataniel, não entendi muito bem como isso funcionaria, você teria um trecho de código para eu dar uma olhada? Desde já agradeço a atenção.
NR

Criar atributo no objeto enviado para a função setMaster:
 
  1. <?php
  2. $object->dt_atual = date('d/m/Y');
  3. $html->setMaster($object);
  4. ?>

Criar variável no html para substituição:
 
  1. <?php
  2. <p>Data: {$dt_atual}</p>
  3. ?>
ET

Ok, deu certo Nataniel. Muito obrigado.