Substituir código pela descrição do campo no Relatorio PDF Pessoal, Como substituir no relatório PDF o campo código pela descrição do campo....
ST
Substituir código pela descrição do campo no Relatorio PDF  
Pessoal,
Como substituir no relatório PDF o campo código pela descrição do campo.

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)


NR

Sebastião, é o mesmo caso que seu outro tópico:
https://www.adianti.com.br/forum/pt/view_3622?mostrar-campo-descricao-de-outra-t

Se já houver o relacionamento entre os modelos, basta referenciá-lo:
Ex pessoa e cidade
<?php$pessoa = new Pessoa(1);echo $pessoa->cidade->descricao;?>
ST

Nataniel,

Não estou conseguindo, veja o que pode estar errado no código:

Relatório:

<?php/** * PerdcompReport Report * @author  <your name here> */class PerdcompReport extends TPage{    protected $form; // form    protected $notebook;        /**     * Class constructor     * Creates the page and the registration form     */    function __construct()    {        parent::__construct();                // creates the form        $this->form = new TQuickForm('form_Perdcomp_report');        $this->form->class = 'tform'; // change CSS class      //  $this->form = new BootstrapFormWrapper($this->form);        $this->form->style = 'display: table;width:100%'; // change style                // define the form title        $this->form->setFormTitle('Filtro Relatório Perdcomp');                  // create the form fields    //    $perdcomp_id = new TEntry('perdcomp_id');        $DataCriacao = new TDate('DataCriacao');        $DataTransmissao = new TDate('DataTransmissao');        $Nr_Perdcomp = new TEntry('Nr_Perdcomp');        $TipoDocumento_id       = new 
">TDBSeekButton('TipoDocumento_id', 'perdcomp', $this->form->getName(), 'TipoDocumento', 'TipoDocumentoDescricao', 'TipoDocumento_id', 'tipo_documento');        $TipoDocumentoDescricao = new TEntry('tipo_documento');        $TipoCredito_id       = new 
">TDBSeekButton('TipoCredito_id', 'perdcomp', $this->form->getName(), 'TipoCredito', 'TipoCreditoDescricao', 'TipoCredito_id', 'tipo_credito');        $TipoCreditoDescricao = new TEntry('tipo_credito');        $OrigemDocumento_id       = new 
">TDBSeekButton('OrigemDocumento_id', 'perdcomp', $this->form->getName(), 'OrigemDocumento', 'OrigemDocumentoDescricao', 'OrigemDocumento_id', 'origem_documento');        $OrigemDocumentoDescricao = new TEntry('origem_documento');        $TipoImposto_id       = new 
">TDBSeekButton('TipoImposto_id', 'perdcomp', $this->form->getName(), 'TipoImposto', 'TipoImpostoDescricao', 'TipoImposto_id', 'tipo_imposto');        $TipoImpostoDescricao = new TEntry('tipo_imposto');        $TipoSituacao_id       = new 
">TDBSeekButton('TipoSituacao_id', 'perdcomp', $this->form->getName(), 'TipoSituacao', 'TipoSituacaoDescricao', 'TipoSituacao_id', 'tipo_situacao');        $TipoSituacaoDescricao = new TEntry('tipo_situacao');               $Exercicio = new TEntry('Exercicio');        $output_type = new TRadioGroup('output_type');                $TipoDocumentoDescricao->setEditable(FALSE);        $TipoDocumento_id->setSize('40');        $TipoDocumentoDescricao->setSize('500');                $TipoCreditoDescricao->setEditable(FALSE);        $TipoCredito_id->setSize('40');        $TipoCreditoDescricao->setSize('500');                $OrigemDocumentoDescricao->setEditable(FALSE);        $OrigemDocumento_id->setSize('40');        $OrigemDocumentoDescricao->setSize('500');             $TipoImpostoDescricao->setEditable(FALSE);        $TipoImposto_id->setSize('40');        $TipoImpostoDescricao->setSize('500');                $TipoSituacaoDescricao->setEditable(FALSE);        $TipoSituacao_id->setSize('40');        $TipoSituacaoDescricao->setSize('500');                               // add the fields      //   $this->form->addQuickField('Código:', $perdcomp_id,  80 );        $this->form->addQuickField('Data Criação:', $DataCriacao,  80 );        $this->form->addQuickField('Data Transmissão:', $DataTransmissao,  80 );        $this->form->addQuickField('Nº Perdcomp:', $Nr_Perdcomp,  500 );        $this->form->addQuickFields('Tipo Documento:', [ $TipoDocumento_id, $TipoDocumentoDescricao ] );             $this->form->addQuickFields('Tipo Crédito:', [ $TipoCredito_id, $TipoCreditoDescricao] );             $this->form->addQuickFields('Origem Documento:', [ $OrigemDocumento_id, $OrigemDocumentoDescricao ] );             $this->form->addQuickFields('Imposto:', [ $TipoImposto_id, $TipoImpostoDescricao] );             $this->form->addQuickFields('Tipo Situação:', [ $TipoSituacao_id, $TipoSituacaoDescricao] );             $this->form->addQuickField('Exercício', $Exercicio,  100 );                        $this->form->addQuickField('Output', $output_type,  100 , new TRequiredValidator);                $output_type->addItems(array('html'=>'HTML', 'pdf'=>'PDF'));;        $output_type->setValue('pdf');        $output_type->setLayout('horizontal');                // add the action button        $this->form->addQuickAction(_t('Generate'), new TAction(array($this, 'onGenerate')), 'fa:cog blue');                // vertical box container                               $container = new TVBox;        $container->style = 'width: 101%';        // $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));        $container->add($this->form);        //$container->add(TPanelGroup::pack('Perdcomp', $this->form));                         parent::add($container);    }        /**     * Generate the report     */    function onGenerate()    {        try        {            // open a transaction with database 'perdcomp'            TTransaction::open('perdcomp');                        // get the form data into an active record            $formdata = $this->form->getData();                        $repository = new TRepository('Perdcomp');            $criteria   = new TCriteria;           $criteria->add(new TFilter('system_unit_id','=',TSession::getValue('userunitid')));                               if ($formdata->perdcomp_id)            {                $criteria->add(new TFilter('perdcomp_id', 'like', "%{$formdata->perdcomp_id}%"));            }            if ($formdata->DataCriacao)            {                $criteria->add(new TFilter('DataCriacao', 'like', "%{$formdata->DataCriacao}%"));            }            if ($formdata->DataTransmissao)            {                $criteria->add(new TFilter('DataTransmissao', 'like', "%{$formdata->DataTransmissao}%"));            }            if ($formdata->Nr_Perdcomp)            {                $criteria->add(new TFilter('Nr_Perdcomp', 'like', "%{$formdata->Nr_Perdcomp}%"));            }            if ($formdata->TipoDocumento_id)            {                $criteria->add(new TFilter('TipoDocumento_id', 'like', "%{$formdata->TipoDocumento_id}%"));            }            if ($formdata->OrigemDocumento_id)            {                $criteria->add(new TFilter('OrigemDocumento_id', 'like', "%{$formdata->OrigemDocumento_id}%"));            }            if ($formdata->TipoCredito_id)            {                $criteria->add(new TFilter('TipoCredito_id', 'like', "%{$formdata->TipoCredito_id}%"));            }            if ($formdata->Exercicio)            {                $criteria->add(new TFilter('Exercicio', 'like', "%{$formdata->Exercicio}%"));            }            if ($formdata->TipoImposto_id)            {                $criteria->add(new TFilter('TipoImposto_id', 'like', "%{$formdata->TipoImposto_id}%"));            }            if ($formdata->PerdcompOriginal)            {                $criteria->add(new TFilter('PerdcompOriginal', 'like', "%{$formdata->PerdcompOriginal}%"));            }            if ($formdata->TipoSituacao_id)            {                $criteria->add(new TFilter('TipoSituacao_id', 'like', "%{$formdata->TipoSituacao_id}%"));            }                               $objects = $repository->load($criteria, FALSE);            $format  = $formdata->output_type;                        if ($objects)            {                $widths = array(50,50,50,100,100,50,50,50,50,50,50,50,50,100,50,100,50,50,50,50,50,50,50,50,50,50,50,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;                }                                // create the document styles                $tr->addStyle('title', 'Arial', '10', 'B',   '#ffffff', '#A3A3A3');                $tr->addStyle('datap', 'Arial', '10', '',    '#000000', '#EEEEEE');                $tr->addStyle('datai', 'Arial', '10', '',    '#000000', '#ffffff');                $tr->addStyle('header', 'Arial', '16', '',   '#ffffff', '#6B6B6B');                $tr->addStyle('footer', 'Times', '10', 'I',  '#000000', '#A3A3A3');                                // add a header row                $tr->addRow();                $tr->addCell('Perdcomp', 'center', 'header', 28);                                // add titles row                $tr->addRow();                $tr->addCell('Código', 'right', 'title');                $tr->addCell('Data Criação', 'left', 'title');                $tr->addCell('Data Transmissão', 'left', 'title');                $tr->addCell('Sequencial', 'left', 'title');                $tr->addCell('Nº Perdcomp', 'left', 'title');                $tr->addCell('Tipo Documento', 'right', 'title');                $tr->addCell('Origem Documento', 'right', 'title');                $tr->addCell('Tipo Credito', 'right', 'title');                $tr->addCell('Saldo Declarado', 'right', 'title');                $tr->addCell('Exercicio', 'right', 'title');                $tr->addCell('Tipo Iimposto', 'right', 'title');                $tr->addCell('Valorcompensado', 'right', 'title');               // $tr->addCell('Competencia', 'left', 'title');                $tr->addCell('Perdcomp Original', 'left', 'title');                $tr->addCell('Tipo Situacao', 'right', 'title');                $tr->addCell('Cancelamento', 'left', 'title');                $tr->addCell('Credito Original Inicial', 'right', 'title');                $tr->addCell('Credito Original Utilizado Compensações', 'right', 'title');                $tr->addCell('Credito Original Disponível', 'right', 'title');                $tr->addCell('Crédito Original Transmissão', 'right', 'title');                $tr->addCell('Selic Acumulada', 'right', 'title');                $tr->addCell('Crédito Atualizado', 'right', 'title');                $tr->addCell('Débitos Documento', 'right', 'title');                $tr->addCell('Credito Original Utilizado Documento', 'right', 'title');                $tr->addCell('Saldo Crédito Original', 'right', 'title');                                               // controls the background filling                $colour= FALSE;                                // data rows                foreach ($objects as $object)                {                    $style = $colour ? 'datap' : 'datai';                    $tr->addRow();                    $tr->addCell($object->perdcomp_id, 'right', $style);                    $tr->addCell($object->DataCriacao, 'left', $style);                    $tr->addCell($object->DataTransmissao, 'left', $style);                    $tr->addCell($object->Sequencial, 'left', $style);                    $tr->addCell($object->Nr_Perdcomp, 'left', $style);                    $tr->addCell($object->TipoDocumento_id, 'right', $style);                    $tr->addCell($object->OrigemDocumento_id, 'right', $style);                    $tr->addCell($object->TipoCredito_id, 'right', $style);                    $tr->addCell($object->SaldoDeclarado, 'right', $style);                    $tr->addCell($object->Exercicio, 'right', $style);                    $tr->addCell($object->TipoImposto_id, 'right', $style);                    $tr->addCell($object->ValorCompensado, 'right', $style);                    //$tr->addCell($object->Competencia, 'left', $style);                    $tr->addCell($object->PerdcompOriginal, 'left', $style);                    $tr->addCell($object->TipoServido_id, 'right', $style);                    $tr->addCell($object->Cancelamento, 'left', $style);                    $tr->addCell($object->CreditoOriginalInicial, 'right', $style);                    $tr->addCell($object->CreditoOriginalUtilizadoCompensacoes, 'right', $style);                    $tr->addCell($object->CreditoOriginalDisponivel, 'right', $style);                    $tr->addCell($object->CreditoOriginalTransmissao, 'right', $style);                    $tr->addCell($object->SelicAcumulada, 'right', $style);                    $tr->addCell($object->CreditoAtualizado, 'right', $style);                    $tr->addCell($object->DebitosDocumento, 'right', $style);                    $tr->addCell($object->CreditoOriginalUtilizadoDocumento, 'right', $style);                    $tr->addCell($object->SaldoCreditoOriginal, 'right', $style);                                                       $colour = !$colour;                }                                // footer row                $tr->addRow();                $tr->addCell(date('Y-m-d h:i:s'), 'center', 'footer', 28);                // stores the file                if (!file_exists("app/output/Perdcomp.{$format}") OR is_writable("app/output/Perdcomp.{$format}"))                {                    $tr->save("app/output/Perdcomp.{$format}");                }                else                {                    throw new Exception(_t('Permission denied') . ': ' . "app/output/Perdcomp.{$format}");                }                                // open the report file                parent::openFile("app/output/Perdcomp.{$format}");                                // shows the success message                new TMessage('info', 'Relatório Gerado. Por favor, habilite o popups.');            }            else            {                new TMessage('info', 'Não existe registro para a consulta');            }                // fill the form with the active record data            $this->form->setData($formdata);                        // close the transaction            TTransaction::close();        }        catch (Exception $e) // in case of exception        {            // shows the exception error message            new TMessage('error', '<b>Error</b> ' . $e->getMessage());                        // undo all pending operations            TTransaction::rollback();        }    }}Modelo:
<?php/** * Perdcomp Active Record * @author  <your-name-here> */class Perdcomp extends TRecord{    const TABLENAME = 'perdcomp';    const PRIMARYKEY= 'perdcomp_id';    const IDPOLICY =  'max'; // {max, serial}            private $origem_documento;    private $tipo_credito;    private $tipo_documento;    private $tipo_imposto;    private $tipo_situacao;    private $nrperdcomp;    private $system_unit;     /**     * Constructor method     */    public function __construct($id = NULL, $callObjectLoad = TRUE)    {        parent::__construct($id, $callObjectLoad);        parent::addAttribute('DataCriacao');        parent::addAttribute('DataTransmissao');        parent::addAttribute('Sequencial');        parent::addAttribute('Nr_Perdcomp');        parent::addAttribute('TipoDocumento_id');        parent::addAttribute('OrigemDocumento_id');        parent::addAttribute('TipoCredito_id');        parent::addAttribute('SaldoDeclarado');        parent::addAttribute('Exercicio');        parent::addAttribute('TipoImposto_id');        parent::addAttribute('ValorCompensado');        parent::addAttribute('Competencia');        parent::addAttribute('PerdcompOriginal');        parent::addAttribute('TipoSituacao_id');        parent::addAttribute('Cancelamento');        parent::addAttribute('CreditoOriginalInicial');        parent::addAttribute('CreditoOriginalUtilizadoCompensacoes');        parent::addAttribute('CreditoOriginalDisponivel');        parent::addAttribute('CreditoOriginalTransmissao');        parent::addAttribute('SelicAcumulada');        parent::addAttribute('CreditoAtualizado');        parent::addAttribute('DebitosDocumento');        parent::addAttribute('CreditoOriginalUtilizadoDocumento');        parent::addAttribute('SaldoCreditoOriginal');        parent::addAttribute('system_unit_id');        parent::addAttribute('system_user_id');        parent::addAttribute('Ged');    }            public function get_tipo_credito()    {        if (empty($this->tipo_credito))            $this->tipo_credito = new TipoCredito($this->TipoCredito_id);            return $this->tipo_credito->TipoCreditoDescricao;            }            public function get_tipo_documento()    {        if (empty($this->tipo_documento))            $this->tipo_documento = new TipoDocumento($this->TipoDocumento_id);        return $this->tipo_documento->TipoDocumentoDescricao;    }           public function get_origem_documento()    {        if (empty($this->origem_documento))            $this->origem_documento = new OrigemDocumento($this->OrigemDocumento_id);            return $this->origem_documento->OrigemDocumentoDescricao;            }            public function get_tipo_imposto()    {        if (empty($this->tipo_imposto))            $this->tipo_imposto = new TipoImposto($this->TipoImposto_id);            return $this->tipo_imposto->TipoImpostoDescricao;    }            public function get_tipo_situacao()    {        if (empty($this->tipo_situacao))            $this->tipo_situacao = new TipoSituacao($this->TipoSituacao_id);            return $this->tipo_situacao->TipoSituacaoDescricao;    }                public function get_nrperdcomp()    {        if (empty($this->nrperdcomp))            $this->nrperdcomp = new Perdcomp($this->perdcomp_id);            return $this->nrperdcomp->Nr_Perdcomp;    }            public function get_system_unit()    {        if (empty($this->system_unit))            $this->system_unit = new SystemUser($this->system_unit_id);            return $this->system_unit;    }           }           </your>
ST

Nataniel,
Graças a suas orientações o problema foi resolvido.

Agora poderia me orientar como formatar datas e valores com casas decimais no relatório PDF.
ST

Nataniel,
Obrigado por sua ajuda, este problema foi resolvido.
Tenho ainda as seguintes dúvidas:
1. como formatar data e valores;
2. como repetir os títulos nas demais páginas do relatório.