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
========================================================================
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
========================================================================
- <?php
- class FilmeReportGerado3 extends TPage
- {
- protected $form; // formulário
- protected $notebook;
- /**
- * Class construtora
- * Cria a página e o formulário de inscrição
- */
- function __construct()
- {
- parent::__construct();
- // cria o formulário
- $this->form = new TQuickForm('form_Filme_report');
- $this->form->class = 'tform';
- $this->form->style = 'width: 500px';
- $this->form->setFormTitle('Report');
- // criar os campos do formulário
- $id = new TEntry('id');
- $titulo = new TEntry('titulo');
- $diretor = new TEntry('diretor');
- $id_suporte = new TCombo('id_suporte');
- $id_genero = new TCombo('id_genero');
- $dt_lcto = new TEntry('dt_lcto');
- $duracao = new TEntry('duracao');
- $output_type = new TRadioGroup('output_type');
- // As duas linhas abaixo não exibe no relatório de impressão, exibe apenas nos campos de filtro.
- $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'));
- // adicionar os campos
- $this->form->addQuickField('id', $id, 100);
- $this->form->addQuickField('titulo', $titulo, 100);
- $this->form->addQuickField('diretor', $diretor, 100);
- $this->form->addQuickField('id_suporte', $id_suporte, 100);
- $this->form->addQuickField('id_genero', $id_genero, 100);
- $this->form->addQuickField('dt_lcto', $dt_lcto, 100);
- $this->form->addQuickField('duracao', $duracao, 100);
- $this->form->addQuickField('Output', $output_type, 100, new TRequiredValidator );
- $output_type->addItems(array('html'=>'HTML', 'pdf'=>'PDF', 'rtf'=>'RTF'));;
- $output_type->setValue('pdf');
- $output_type->setLayout('horizontal');
- // adicionar o botão de ação
- $this->form->addQuickAction(_t('Generate'), new TAction(array($this, 'onGenerate')), 'ico_apply.png');
- // adicione o formulário para a página
- parent::add($this->form);
- }
- /**
- * método onGenerate()
- * É executado sempre que o usuário clica no botão gerar
- */
- function onGenerate()
- {
- try
- {
- // abrir uma transação com banco de dados 'teste'
- TTransaction::open('teste');
- // obter os dados do formulário em um registro ativo
- $formdata = $this->form->getData();
- $repository = new TRepository('Filme');
- $criteria = new TCriteria;
- if ($formdata->id)
- {
- $criteria->add(new TFilter('id', 'like', "%{$formdata->id}%"));
- }
- if ($formdata->titulo)
- {
- $criteria->add(new TFilter('titulo', 'like', "%{$formdata->titulo}%"));
- }
- if ($formdata->diretor)
- {
- $criteria->add(new TFilter('diretor', 'like', "%{$formdata->diretor}%"));
- }
- if ($formdata->id_suporte)
- {
- $criteria->add(new TFilter('id_suporte', 'like', "%{$formdata->id_suporte}%"));
- }
- if ($formdata->id_genero)
- {
- $criteria->add(new TFilter('id_genero', 'like', "%{$formdata->id_genero}%"));
- }
- if ($formdata->dt_lcto)
- {
- $criteria->add(new TFilter('dt_lcto', 'like', "%{$formdata->dt_lcto}%"));
- }
- if ($formdata->duracao)
- {
- $criteria->add(new TFilter('duracao', 'like', "%{$formdata->duracao}%"));
- }
- $objects = $repository->load($criteria);
- $format = $formdata->output_type;
- if ($objects)
- {
- $widths = array(100,100,100,100,100,100,100);
- switch ($format)
- {
- case 'html':
- $tr = new TTableWriterHTML($widths);
- break;
- case 'pdf':
- $tr = new TTableWriterPDF($widths);
- break;
- case 'rtf':
- if (!class_exists('PHPRtfLite_Autoloader'))
- {
- PHPRtfLite::registerAutoloader();
- }
- $tr = new TTableWriterRTF($widths);
- break;
- }
- // criar os estilos do documento
- $tr->addStyle('title', 'Arial', '10', 'B', '#ffffff', '#6B6B6B');
- $tr->addStyle('datap', 'Arial', '10', '', '#000000', '#E5E5E5');
- $tr->addStyle('datai', 'Arial', '10', '', '#000000', '#ffffff');
- $tr->addStyle('header', 'Times', '16', 'B', '#4A5590', '#C0D3E9');
- $tr->addStyle('footer', 'Times', '12', 'BI', '#4A5590', '#C0D3E9');
- // adicionar uma linha de cabeçalho
- $tr->addRow();
- $tr->addCell('Filme', 'center', 'header', 7);
- // adicionar títulos seguidos
- $tr->addRow();
- $tr->addCell('id', 'left', 'title');
- $tr->addCell('titulo', 'left', 'title');
- $tr->addCell('diretor', 'left', 'title');
- $tr->addCell('id_suporte', 'left', 'title');
- $tr->addCell('id_genero', 'left', 'title');
- $tr->addCell('dt_lcto', 'left', 'title');
- $tr->addCell('duracao', 'left', 'title');
- // controla o enchimento fundo
- $colour= FALSE;
- // linhas de dados
- foreach ($objects as $object)
- {
- $style = $colour ? 'datap' : 'datai';
- $tr->addRow();
- $tr->addCell($object->id, 'left', $style);
- $tr->addCell($object->titulo, 'left', $style);
- $tr->addCell($object->diretor, 'left', $style);
- $tr->addCell($object->id_suporte, 'left', $style);
- $tr->addCell($object->id_genero, 'left', $style);
- $tr->addCell($object->dt_lcto, 'left', $style);
- $tr->addCell($object->duracao, 'left', $style);
- $colour = !$colour;
- }
- // linha de rodapé
- $tr->addRow();
- $tr->addCell(date('Y-m-d h:i:s'), 'center', 'footer', 7);
- // armazena o arquivo
- if (!file_exists("app/output/Filme.{$format}") OR is_writable("app/output/Filme.{$format}"))
- {
- $tr->save("app/output/Filme.{$format}");
- }
- else
- {
- throw new Exception(_t('Permission denied') . ': ' . "app/output/Filme.{$format}");
- }
- // abra o arquivo de relatório
- parent::openFile("app/output/Filme.{$format}");
- // mostra a mensagem de sucesso
- new TMessage('info', 'Report generated. Please, enable popups in the browser (just in the web).');
- }
- else
- {
- new TMessage('error', 'No records found');
- }
- // preencha o formulário com os dados do registro ativo
- $this->form->setData($formdata);
- // fechar a transacção
- TTransaction::close();
- }
- catch (Exception $e) // em caso de excepção
- {
- // mostra a mensagem de erro de exceção
- new TMessage('error', '<b>Error</b> ' . $e->getMessage());
- // desfazer todas as operações pendentes
- TTransaction::rollback();
- }
- }
- }
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
Cara, vou levar uma eternidade para tentar entender o que você disse. Coloque um exemplo ai que fica mais fácil para mim.
é a mesma coisa desse tópico.
www.adianti.com.br/forum/pt/view_1280?no-datagrid-aparece-o-codigo-a
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');