Os dados do TCombo exibe no Relatório de Impressão como números Pessoal, eu criei aquele projeto todinho sobre Filme que o Pablo explicou no video, fiz tudo, só que os dados dos dois campos TCombo: id_suporte, id_genero, não estão aparecendo no relatório de impressão. Eu já instalei o Adianti Studio 2.0, estou utilizando o framework gerado por ele, ele gera o relatório utilizando o wizard, aparece os campos de filtro, o botão Gerar funciona normal, o...
AM
Os dados do TCombo exibe no Relatório de Impressão como números  
Pessoal, eu criei aquele projeto todinho sobre Filme que o Pablo explicou no video, fiz tudo, só que os dados dos dois campos TCombo: id_suporte, id_genero, não estão aparecendo no relatório de impressão.
Eu já instalei o Adianti Studio 2.0, estou utilizando o framework gerado por ele, ele gera o relatório utilizando o wizard, aparece os campos de filtro, o botão Gerar funciona normal, o problema é que nestes dois campos só aparece números. Eu gostaria que alguém me dissesse em que parte do meu código do relatório de impressão gerado pelo wizard eu devo inserir as duas linhas de código abaixo:

$id_suporte->addItems(array( 1=> 'DVD', 2=> 'Blu-ray', 3=> 'VHS'));
$id_genero->addItems(array( 1=> 'Romance', 2=> 'Comédia', 3=> 'Ficção', 4=> 'Aventura', 5=>'Policial'));

========================================================================
MEU CÓDIGO GERADO PELO ASSISTENTE DE RELATÓRIO DE IMPRESSÃO
========================================================================
 
  1. <?php
  2. class FilmeReportGerado3 extends TPage
  3. {
  4. protected $form; // formulário
  5. protected $notebook;
  6. /**
  7. * Class construtora
  8. * Cria a página e o formulário de inscrição
  9. */
  10. function __construct()
  11. {
  12. parent::__construct();
  13. // cria o formulário
  14. $this->form = new TQuickForm('form_Filme_report');
  15. $this->form->class = 'tform';
  16. $this->form->style = 'width: 500px';
  17. $this->form->setFormTitle('Report');
  18. // criar os campos do formulário
  19. $id = new TEntry('id');
  20. $titulo = new TEntry('titulo');
  21. $diretor = new TEntry('diretor');
  22. $id_suporte = new TCombo('id_suporte');
  23. $id_genero = new TCombo('id_genero');
  24. $dt_lcto = new TEntry('dt_lcto');
  25. $duracao = new TEntry('duracao');
  26. $output_type = new TRadioGroup('output_type');
  27. // As duas linhas abaixo não exibe no relatório de impressão, exibe apenas nos campos de filtro.
  28. $id_suporte->addItems(array( 1=> 'DVD', 2=> 'Blu-ray', 3=> 'VHS'));
  29. $id_genero->addItems(array( 1=> 'Romance', 2=> 'Comédia', 3=> 'Ficção', 4=> 'Aventura', 5=>'Policial'));
  30. // adicionar os campos
  31. $this->form->addQuickField('id', $id, 100);
  32. $this->form->addQuickField('titulo', $titulo, 100);
  33. $this->form->addQuickField('diretor', $diretor, 100);
  34. $this->form->addQuickField('id_suporte', $id_suporte, 100);
  35. $this->form->addQuickField('id_genero', $id_genero, 100);
  36. $this->form->addQuickField('dt_lcto', $dt_lcto, 100);
  37. $this->form->addQuickField('duracao', $duracao, 100);
  38. $this->form->addQuickField('Output', $output_type, 100, new TRequiredValidator );
  39. $output_type->addItems(array('html'=>'HTML', 'pdf'=>'PDF', 'rtf'=>'RTF'));;
  40. $output_type->setValue('pdf');
  41. $output_type->setLayout('horizontal');
  42. // adicionar o botão de ação
  43. $this->form->addQuickAction(_t('Generate'), new TAction(array($this, 'onGenerate')), 'ico_apply.png');
  44. // adicione o formulário para a página
  45. parent::add($this->form);
  46. }
  47. /**
  48. * método onGenerate()
  49. * É executado sempre que o usuário clica no botão gerar
  50. */
  51. function onGenerate()
  52. {
  53. try
  54. {
  55. // abrir uma transação com banco de dados 'teste'
  56. TTransaction::open('teste');
  57. // obter os dados do formulário em um registro ativo
  58. $formdata = $this->form->getData();
  59. $repository = new TRepository('Filme');
  60. $criteria = new TCriteria;
  61. if ($formdata->id)
  62. {
  63. $criteria->add(new TFilter('id', 'like', "%{$formdata->id}%"));
  64. }
  65. if ($formdata->titulo)
  66. {
  67. $criteria->add(new TFilter('titulo', 'like', "%{$formdata->titulo}%"));
  68. }
  69. if ($formdata->diretor)
  70. {
  71. $criteria->add(new TFilter('diretor', 'like', "%{$formdata->diretor}%"));
  72. }
  73. if ($formdata->id_suporte)
  74. {
  75. $criteria->add(new TFilter('id_suporte', 'like', "%{$formdata->id_suporte}%"));
  76. }
  77. if ($formdata->id_genero)
  78. {
  79. $criteria->add(new TFilter('id_genero', 'like', "%{$formdata->id_genero}%"));
  80. }
  81. if ($formdata->dt_lcto)
  82. {
  83. $criteria->add(new TFilter('dt_lcto', 'like', "%{$formdata->dt_lcto}%"));
  84. }
  85. if ($formdata->duracao)
  86. {
  87. $criteria->add(new TFilter('duracao', 'like', "%{$formdata->duracao}%"));
  88. }
  89. $objects = $repository->load($criteria);
  90. $format = $formdata->output_type;
  91. if ($objects)
  92. {
  93. $widths = array(100,100,100,100,100,100,100);
  94. switch ($format)
  95. {
  96. case 'html':
  97. $tr = new TTableWriterHTML($widths);
  98. break;
  99. case 'pdf':
  100. $tr = new TTableWriterPDF($widths);
  101. break;
  102. case 'rtf':
  103. if (!class_exists('PHPRtfLite_Autoloader'))
  104. {
  105. PHPRtfLite::registerAutoloader();
  106. }
  107. $tr = new TTableWriterRTF($widths);
  108. break;
  109. }
  110. // criar os estilos do documento
  111. $tr->addStyle('title', 'Arial', '10', 'B', '#ffffff', '#6B6B6B');
  112. $tr->addStyle('datap', 'Arial', '10', '', '#000000', '#E5E5E5');
  113. $tr->addStyle('datai', 'Arial', '10', '', '#000000', '#ffffff');
  114. $tr->addStyle('header', 'Times', '16', 'B', '#4A5590', '#C0D3E9');
  115. $tr->addStyle('footer', 'Times', '12', 'BI', '#4A5590', '#C0D3E9');
  116. // adicionar uma linha de cabeçalho
  117. $tr->addRow();
  118. $tr->addCell('Filme', 'center', 'header', 7);
  119. // adicionar títulos seguidos
  120. $tr->addRow();
  121. $tr->addCell('id', 'left', 'title');
  122. $tr->addCell('titulo', 'left', 'title');
  123. $tr->addCell('diretor', 'left', 'title');
  124. $tr->addCell('id_suporte', 'left', 'title');
  125. $tr->addCell('id_genero', 'left', 'title');
  126. $tr->addCell('dt_lcto', 'left', 'title');
  127. $tr->addCell('duracao', 'left', 'title');
  128. // controla o enchimento fundo
  129. $colour= FALSE;
  130. // linhas de dados
  131. foreach ($objects as $object)
  132. {
  133. $style = $colour ? 'datap' : 'datai';
  134. $tr->addRow();
  135. $tr->addCell($object->id, 'left', $style);
  136. $tr->addCell($object->titulo, 'left', $style);
  137. $tr->addCell($object->diretor, 'left', $style);
  138. $tr->addCell($object->id_suporte, 'left', $style);
  139. $tr->addCell($object->id_genero, 'left', $style);
  140. $tr->addCell($object->dt_lcto, 'left', $style);
  141. $tr->addCell($object->duracao, 'left', $style);
  142. $colour = !$colour;
  143. }
  144. // linha de rodapé
  145. $tr->addRow();
  146. $tr->addCell(date('Y-m-d h:i:s'), 'center', 'footer', 7);
  147. // armazena o arquivo
  148. if (!file_exists("app/output/Filme.{$format}") OR is_writable("app/output/Filme.{$format}"))
  149. {
  150. $tr->save("app/output/Filme.{$format}");
  151. }
  152. else
  153. {
  154. throw new Exception(_t('Permission denied') . ': ' . "app/output/Filme.{$format}");
  155. }
  156. // abra o arquivo de relatório
  157. parent::openFile("app/output/Filme.{$format}");
  158. // mostra a mensagem de sucesso
  159. new TMessage('info', 'Report generated. Please, enable popups in the browser (just in the web).');
  160. }
  161. else
  162. {
  163. new TMessage('error', 'No records found');
  164. }
  165. // preencha o formulário com os dados do registro ativo
  166. $this->form->setData($formdata);
  167. // fechar a transacção
  168. TTransaction::close();
  169. }
  170. catch (Exception $e) // em caso de excepção
  171. {
  172. // mostra a mensagem de erro de exceção
  173. new TMessage('error', '<b>Error</b> ' . $e->getMessage());
  174. // desfazer todas as operações pendentes
  175. TTransaction::rollback();
  176. }
  177. }
  178. }

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


FC

tera que fazer igual como se fosse num data grid no campo id-instrutor se vc tem uma rotina getinstrutor deverá usar para trazer o nome do instrutor ex $varget->$nome_instrutor

AM

Cara, vou levar uma eternidade para tentar entender o que você disse. Coloque um exemplo ai que fica mais fácil para mim.
FC

é a mesma coisa desse tópico.
www.adianti.com.br/forum/pt/view_1280?no-datagrid-aparece-o-codigo-a
AM

O exemplo que está nesse link que você postou não resolve meu problema porque todos os campos são TEntry e TDate, Não tem nenhum TCombo. E Além disso, o Pablo fala em criar o Método getcliente no Model, mas não mostra nenhum exemplo para agente ter uma idéia.

Outra coisa, no exemplo citado, lá diz que o campo Razão Social não está exibindo nada, mas não é o meu caso. O meu Problema é que tanto no DataGrid como no Relatório de Impressão, ele mostra números nos campos TCombo.

$CODIGO = new TEntry('CODIGO');
$DATACAD = new TDate('DATACAD');
$CLIENTE = new TEntry('CLIENTE');
$STATUS = new TEntry('STATUS');
$FONECONTATO = new TEntry('FONECONTATO');
$DATARECLAMACAO = new TDate('DATARECLAMACAO');
$DATAPREVTERNO = new TDate('DATAPREVTERNO');
$HORARECLAMACAO = new TEntry('HORARECLAMACAO');
$HORAPREVTERNO = new TEntry('HORAPREVTERNO');
$PESSOAATENDIDA = new TEntry('PESSOAATENDIDA');
$TITULOPROBLEMA = new TEntry('TITULOPROBLEMA');
$DESCRICAOPROBLEMA = new TEntry('DESCRICAOPROBLEMA');
$FUNCIONARIOATENDEU = new TEntry('FUNCIONARIOATENDEU');
$DATABAIXA = new TDate('DATABAIXA');
$HORABAIXA = new TEntry('HORABAIXA');
$COBRANCA = new TEntry('COBRANCA');
$VALORCOBRADO = new TEntry('VALORCOBRADO');
$TPSERVICO = new TEntry('TPSERVICO');
$AB_TECNICO = new TEntry('AB_TECNICO');
$FC_TECNICO = new TEntry('FC_TECNICO');
$TECNICO = new TEntry('TECNICO');
$DT_DESPACHO = new TDate('DT_DESPACHO');
$HR_DESPACHO = new TEntry('HR_DESPACHO');