Alterar dados do Registro bom dia Pablo, Conforme havia falado com você ao telefone, não estou consigo pesquisa a descrição, nem editar e também salvar o registro. Veja, anexo, vídeo demonstrativo. Código do Modelo: ...
ST
Alterar dados do Registro  
bom dia Pablo,

Conforme havia falado com você ao telefone, não estou consigo pesquisa a descrição, nem editar e também salvar o registro.
Veja, anexo, vídeo demonstrativo.

Código do 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;    /**     * 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('PERDCOMP_Original');        parent::addAttribute('Situacao');        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('GED');    }        /**     * Method set_origem_documento     * Sample of usage: $perdcomp->origem_documento = $object;     * @param $object Instance of OrigemDocumento     */    public function set_origem_documento(OrigemDocumento $object)    {        $this->origem_documento = $object;        $this->origem_documento_id = $object->id;    }        /**     * Method get_origem_documento     * Sample of usage: $perdcomp->origem_documento->attribute;     * @returns OrigemDocumento instance     */    public function get_origem_documento()    {        // loads the associated object        if (empty($this->origem_documento))            $this->origem_documento = new OrigemDocumento($this->OrigemDocumento_id);            // returns the associated object        return $this->origem_documento->OrigemDocumentoDescricao;    }            /**     * Method set_tipo_credito     * Sample of usage: $perdcomp->tipo_credito = $object;     * @param $object Instance of TipoCredito     */    public function set_tipo_credito(TipoCredito $object)    {        $this->tipo_credito = $object;        $this->tipo_credito_id = $object->id;    }        /**     * Method get_tipo_credito     * Sample of usage: $perdcomp->tipo_credito->attribute;     * @returns TipoCredito instance     */    public function get_tipo_credito()    {        // loads the associated object        if (empty($this->tipo_credito))            $this->tipo_credito = new TipoCredito($this->TipoCredito_id);            // returns the associated object        return $this->tipo_credito->TipoCreditoDescricao;                    }                 /**     * Method set_tipo_documento     * Sample of usage: $perdcomp->tipo_documento = $object;     * @param $object Instance of TipoDocumento     */    public function set_tipo_documento(TipoDocumento $object)    {        $this->tipo_documento = $object;        $this->tipo_documento_id = $object->id;    }        /**     * Method get_tipo_documento     * Sample of usage: $perdcomp->tipo_documento->attribute;     * @returns TipoDocumento instance     */    public function get_tipo_documento()    {        // loads the associated object        if (empty($this->tipo_documento))            $this->tipo_documento = new TipoDocumento($this->TipoDocumento_id);            // returns the associated object        return $this->tipo_documento->TipoDocumentoDescricao;    }            /**     * Method set_tipo_imposto     * Sample of usage: $perdcomp->tipo_imposto = $object;     * @param $object Instance of TipoImposto     */    public function set_tipo_imposto(TipoImposto $object)    {        $this->tipo_imposto = $object;        $this->tipo_imposto_id = $object->TipoImposto_ID;    }        /**     * Method get_tipo_imposto     * Sample of usage: $perdcomp->tipo_imposto->attribute;     * @returns TipoImposto instance     */    public function get_tipo_imposto()    {        // loads the associated object        if (empty($this->tipo_imposto))            $this->tipo_imposto = new TipoImposto($this->TipoImposto_ID);            // returns the associated object        return $this->tipo_imposto->TipoImposto_Descricao;    }    }Código do Formulário:
<?php/** * PerdcompForm Registration * @author  <your name here> */class PerdcompForm extends TPage{    protected $form; // form        use Adianti\Base\AdiantiStandardFormTrait; // Standard form methods        /**     * Class constructor     * Creates the page and the registration form     */    function __construct()    {        parent::__construct();                $this->setDatabase('perdcomp');              // defines the database        $this->setActiveRecord('Perdcomp');     // defines the active record                // creates the form        $this->form = new TQuickForm('form_Perdcomp');        $this->form->class = 'tform'; // change CSS class                $this->form->style = 'display: table;width:100%'; // change style                // define the form title        $this->form->setFormTitle('Perdcomp');                // create the form fields        $perdcomp_id = new TEntry('perdcomp_id');        $DataCriacao = new TDate('DataCriacao');        $DataTransmissao = new TDate('DataTransmissao');        $Sequencial = new TEntry('Sequencial');        $Nr_PERDCOMP = new TEntry('Nr_PERDCOMP');        $TipoDocumento_id           = new 
">TDBSeekButton('TipoDocumento_id', 'perdcomp', $this->form->getName(), 'TipoDocumento', 'TipoDocumentoDescricao', 'TipoDocumento_id', 'TipoDocumentoDescricao');        $TipoDocumentoDescricao     = new TEntry('tipo_documento');        $OrigemDocumento_id       = new 
">TDBSeekButton('OrigemDocumento_id', 'perdcomp', $this->form->getName(), 'OrigemDocumento', 'OrigemDocumentoDescricao', 'OrigemDocumento_id', 'OrigemDocumentoDescricao');        $OrigemDocumentoDescricao = new TEntry('origem_documento');        $TipoCredito_id       = new 
">TDBSeekButton('TipoCredito_id', 'perdcomp', $this->form->getName(), 'TipoCredito', 'TipoCreditoDescricao', 'TipoCredito_id', 'TipoCreditoDescricao');        $TipoCreditoDescricao = new TEntry('tipo_credito');        $SaldoDeclarado = new TEntry('SaldoDeclarado');        $Exercicio = new TEntry('Exercicio');        $TipoImposto_ID       = new 
">TDBSeekButton('TipoImposto_ID', 'perdcomp', $this->form->getName(), 'TipoImposto', 'TipoImposto_Descricao', 'TipoImposto_ID', 'TipoImposto_Descricao');        $TipoImposto_Descricao = new TEntry('tipo_imposto');        $ValorCompensado = new TEntry('ValorCompensado');        $Competencia = new TDate('Competencia');        $PERDCOMP_Original = new TEntry('PERDCOMP_Original');        $Situacao = new TEntry('Situacao');        $Cancelamento = new TEntry('Cancelamento');        $CreditoOriginalInicial = new TEntry('CreditoOriginalInicial');        $CreditoOriginalUtilizadoCompensacoes = new TEntry('CreditoOriginalUtilizadoCompensacoes');        $CreditoOriginalDisponivel = new TEntry('CreditoOriginalDisponivel');        $CreditoOriginalTransmissao = new TEntry('CreditoOriginalTransmissao');        $SelicAcumulada = new TEntry('SelicAcumulada');        $CreditoAtualizado = new TEntry('CreditoAtualizado');        $DebitosDocumento = new TEntry('DebitosDocumento');        $CreditoOriginalUtilizadoDocumento = new TEntry('CreditoOriginalUtilizadoDocumento');        $SaldoCreditoOriginal = new TEntry('SaldoCreditoOriginal');        $GED = new TFile('GED');        $TipoDocumentoDescricao->setEditable(FALSE);        $TipoDocumento_id->setSize('40');        $TipoDocumentoDescricao->setSize('500');        $OrigemDocumentoDescricao->setEditable(FALSE);        $OrigemDocumento_id->setSize('40');        $OrigemDocumentoDescricao->setSize('500');        $TipoCreditoDescricao->setEditable(FALSE);        $TipoCredito_id->setSize('40');        $TipoCreditoDescricao->setSize('500');        $TipoImposto_Descricao->setEditable(FALSE);        $TipoImposto_ID->setSize('40');        $TipoImposto_Descricao->setSize('500');                $SaldoDeclarado->setNumericMask(2, ',', '.', TRUE);        $ValorCompensado->setNumericMask(2, ',', '.', TRUE);        $CreditoOriginalInicial->setNumericMask(2, ',', '.', TRUE);        $CreditoOriginalUtilizadoCompensacoes->setNumericMask(2, ',', '.', TRUE);        $CreditoOriginalDisponivel->setNumericMask(2, ',', '.', TRUE);        $CreditoOriginalTransmissao->setNumericMask(2, ',', '.', TRUE);        $SelicAcumulada->setNumericMask(2, ',', '.', TRUE);        $CreditoAtualizado->setNumericMask(2, ',', '.', TRUE);        $DebitosDocumento->setNumericMask(2, ',', '.', TRUE);        $CreditoOriginalUtilizadoDocumento->setNumericMask(2, ',', '.', TRUE);        $SaldoCreditoOriginal->setNumericMask(2, ',', '.', TRUE);                             // add the fields        $this->form->addQuickField('Código:', $perdcomp_id,  100 );        $this->form->addQuickField('Data Criação:', $DataCriacao,  100 );        $this->form->addQuickField('Data Transmissão:', $DataTransmissao,  100 );        $this->form->addQuickField('Sequencial:', $Sequencial,  200 );        $this->form->addQuickField('Nº Perdcomp:', $Nr_PERDCOMP,  200 );        $this->form->addQuickFields('Tipo Documento:', [ $TipoDocumento_id, $TipoDocumentoDescricao ] );             $this->form->addQuickFields('Origem Documento:', [ $OrigemDocumento_id, $OrigemDocumentoDescricao ] );             $this->form->addQuickFields('Tipo Crédito:', [ $TipoCredito_id, $TipoCreditoDescricao] );             $this->form->addQuickField('Saldo Declarado:', $SaldoDeclarado,  100 );        $this->form->addQuickField('Exercicio:', $Exercicio,  100 );        $this->form->addQuickFields('Tipo Imposto:', [ $TipoImposto_ID, $TipoImposto_Descricao] );             $this->form->addQuickField('Valor Compensado:', $ValorCompensado,  100 );        $this->form->addQuickField('Competência:', $Competencia,  100 );        $this->form->addQuickField('Perdcomp Original:', $PERDCOMP_Original,  200 );        $this->form->addQuickField('Situação:', $Situacao,  200 );        $this->form->addQuickField('Cancelamento:', $Cancelamento,  200 );        $this->form->addQuickField('Crédito Original Inicial:', $CreditoOriginalInicial,  100 );        $this->form->addQuickField('Crédito Original Utilizado Compensações:', $CreditoOriginalUtilizadoCompensacoes,  100 );        $this->form->addQuickField('Crédito Original Disponível:', $CreditoOriginalDisponivel,  100 );        $this->form->addQuickField('Crédito Original Transmissão:', $CreditoOriginalTransmissao,  100 );        $this->form->addQuickField('Selic Acumulada:', $SelicAcumulada,  100 );        $this->form->addQuickField('Crédito Atualizado:', $CreditoAtualizado,  100 );        $this->form->addQuickField('Débitos Documento:', $DebitosDocumento,  100 );        $this->form->addQuickField('Crédito Original Utilizado Documento:', $CreditoOriginalUtilizadoDocumento,  100 );        $this->form->addQuickField('Saldo Crédito Original:', $SaldoCreditoOriginal,  100);        $this->form->addQuickField('Ged:', $GED,  500 );                if (!empty($perdcomp_id))        {            $perdcomp_id->setEditable(FALSE);        }                /** samples         $this->form->addQuickFields('Date', array($date1, new TLabel('to'), $date2)); // side by side fields         $fieldX->addValidation( 'Field X', new TRequiredValidator ); // add validation         $fieldX->setSize( 100, 40 ); // set size         **/                 // create the form actions        $this->form->addQuickAction(_t('Save'), new TAction(array($this, 'onSave')), 'fa:floppy-o');        $this->form->addQuickAction(_t('New'),  new TAction(array($this, 'onEdit')), 'bs:plus-sign green');        $this->form->addQuickAction(_t('Back to the listing'), new TAction(array('PerdcompList', 'onReload')), 'fa:table blue');                  // vertical box container        $container = new TVBox;        $container->style = 'width: 90%';        // $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));        $container->add($this->form);                parent::add($container);    }}Código da Listagem do datagrid:
<?php/** * PerdcompList Listing * @author  <your name here> */class PerdcompList extends TStandardList{    protected $form;     // registration form    protected $datagrid; // listing    protected $pageNavigation;    protected $formgrid;    protected $deleteButton;    protected $transformCallback;        /**     * Page constructor     */    public function __construct()    {        parent::__construct();                parent::setDatabase('perdcomp');            // defines the database        parent::setActiveRecord('Perdcomp');   // defines the active record        parent::setDefaultOrder('perdcomp_id', 'asc');         // defines the default order        // parent::setCriteria($criteria) // define a standard filter        parent::addFilterField('DataCriacao', 'like', 'DataCriacao'); // filterField, operator, formField        parent::addFilterField('DataTransmissao', 'like', 'DataTransmissao'); // filterField, operator, formField        parent::addFilterField('Nr_PERDCOMP', 'like', 'Nr_PERDCOMP'); // filterField, operator, formField        parent::addFilterField('TipoDocumento_id', 'like', 'TipoDocumento_id'); // filterField, operator, formField        parent::addFilterField('TipoCredito_id', 'like', 'TipoCredito_id'); // filterField, operator, formField        parent::addFilterField('OrigemDocumento_id', 'like', 'OrigemDocumento_id'); // filterField, operator, formField        parent::addFilterField('TipoImposto_ID', 'like', 'TipoImposto_ID'); // filterField, operator, formField        parent::addFilterField('Exercicio', 'like', 'Exercicio'); // filterField, operator, formField                // creates the form        $this->form = new TQuickForm('form_search_Perdcomp');        $this->form->class = 'tform'; // change CSS class                $this->form->style = 'display: table;width:100%'; // change style        $this->form->setFormTitle('Filtrar Dados Perdcomp');                // create the form fields        $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', 'TipoDocumentoDescricao');        $TipoDocumentoDescricao = new TEntry('TipoDocumentoDescricao');        $TipoCredito_id       = new 
">TDBSeekButton('TipoCredito_id', 'perdcomp', $this->form->getName(), 'TipoCredito', 'TipoCreditoDescricao', 'TipoCredito_id', 'TipoCreditoDescricao');        $TipoCreditoDescricao = new TEntry('TipoCreditoDescricao');        $OrigemDocumento_id       = new 
">TDBSeekButton('OrigemDocumento_id', 'perdcomp', $this->form->getName(), 'OrigemDocumento', 'OrigemDocumentoDescricao', 'OrigemDocumento_id', 'OrigemDocumentoDescricao');        $OrigemDocumentoDescricao = new TEntry('OrigemDocumentoDescricao');        $TipoImposto_ID       = new 
">TDBSeekButton('TipoImposto_ID', 'perdcomp', $this->form->getName(), 'TipoImposto', 'TipoImposto_Descricao', 'TipoImposto_ID', 'TipoImposto_Descricao');        $TipoImposto_Descricao = new TEntry('TipoImposto_Descricao');        $Exercicio = new TEntry('Exercicio');             // add the fields        $this->form->addQuickField('Data Criação', $DataCriacao,  80 );        $this->form->addQuickField('Data Transmissão', $DataTransmissao,  80 );        $this->form->addQuickField('Nº Perdcomp', $Nr_PERDCOMP,  300 );        $this->form->addQuickFields('Tipo Documento:', [ $TipoDocumento_id, $TipoDocumentoDescricao ] );             $this->form->addQuickFields('Tipo Crédito:', [ $TipoCredito_id, $TipoCreditoDescricao] );             $this->form->addQuickFields('OrigemDocumento:', [ $OrigemDocumento_id, $OrigemDocumentoDescricao ] );             $this->form->addQuickFields('Tipo Imposto:', [ $TipoImposto_ID, $TipoImposto_Descricao] );             $this->form->addQuickField('Exercicio', $Exercicio,  100 );                        $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');             $TipoImposto_Descricao->setEditable(FALSE);        $TipoImposto_ID->setSize('40');        $TipoImposto_Descricao->setSize('500');                // keep the form filled during navigation with session data        $this->form->setData( TSession::getValue('Perdcomp_filter_data') );                // add the search form actions        $this->form->addQuickAction(_t('Find'), new TAction(array($this, 'onSearch')), 'fa:search');        $this->form->addQuickAction(_t('New'),  new TAction(array('PerdcompForm', 'onEdit')), 'bs:plus-sign green');               // creates a DataGrid        $this->datagrid = new TDataGrid;                $this->datagrid->style = 'width: 100%';        $this->datagrid->datatable = 'true';        // $this->datagrid->enablePopover('Popover', 'Hi <b> {name} </b>');                // creates the datagrid columns        $column_DataCriacao = new TDataGridColumn('DataCriacao', 'Data Criação', 'left');        $column_DataTransmissao = new TDataGridColumn('DataTransmissao', 'Data Transmissão', 'left');        $column_Nr_PERDCOMP = new TDataGridColumn('Nr_PERDCOMP', 'Nº Perdcomp', 'left');        $column_TipoDocumento_id = new TDataGridColumn('tipo_documento', 'Tipo Documento', 'right');        $column_TipoCredito_id = new TDataGridColumn('tipo_credito', 'Tipo Crédito', 'right');        $column_TipoImposto_ID = new TDataGridColumn('tipo_imposto', 'Tipo Imposto', 'right');        $column_OrigemDocumento_id = new TDataGridColumn('origem_documento', 'Origem Documento', 'right');       // $column_GED = new TDataGridColumn('GED', 'Ged', 'left');        $column_Sequencial = new TDataGridColumn('Sequencial', 'Sequencial', 'left');        $column_SaldoDeclarado = new TDataGridColumn('SaldoDeclarado', 'Saldo Declarado', 'right');        $column_Exercicio = new TDataGridColumn('Exercicio', 'Exercicio', 'right');        $column_ValorCompensado = new TDataGridColumn('ValorCompensado', 'Valor Compensado', 'right');        $column_Competencia = new TDataGridColumn('Competencia', 'Competência', 'left');        $column_PERDCOMP_Original = new TDataGridColumn('PERDCOMP_Original', 'Perdcomp Original', 'left');        $column_Situacao = new TDataGridColumn('Situacao', 'Situacao', 'left');        $column_Cancelamento = new TDataGridColumn('Cancelamento', 'Cancelamento', 'left');        $column_CreditoOriginalInicial = new TDataGridColumn('CreditoOriginalInicial', 'Credito Original Inicial', 'right');        $column_CreditoOriginalUtilizadoCompensacoes = new TDataGridColumn('CreditoOriginalUtilizadoCompensacoes', 'Crédito Original Utilizado Compensações', 'right');        $column_CreditoOriginalDisponivel = new TDataGridColumn('CreditoOriginalDisponivel', 'Crédito Original Disponível', 'right');        $column_CreditoOriginalTransmissao = new TDataGridColumn('CreditoOriginalTransmissao', 'Crédito Original Transmissão', 'right');        $column_SelicAcumulada = new TDataGridColumn('SelicAcumulada', 'Selic Acumulada', 'right');        $column_CreditoAtualizado = new TDataGridColumn('CreditoAtualizado', 'Crédito Atualizado', 'right');        $column_DebitosDocumento = new TDataGridColumn('DebitosDocumento', 'Débitos Documento', 'right');        $column_CreditoOriginalUtilizadoDocumento = new TDataGridColumn('CreditoOriginalUtilizadoDocumento', 'Crédito Original Utilizado Documento', 'right');        $column_SaldoCreditoOriginal = new TDataGridColumn('SaldoCreditoOriginal', 'Saldo Crédito Original', 'right');        // add the columns to the DataGrid        $this->datagrid->addColumn($column_DataCriacao);        $this->datagrid->addColumn($column_DataTransmissao);        $this->datagrid->addColumn($column_Nr_PERDCOMP);        $this->datagrid->addColumn($column_TipoDocumento_id);        $this->datagrid->addColumn($column_TipoCredito_id);        $this->datagrid->addColumn($column_TipoImposto_ID);        $this->datagrid->addColumn($column_OrigemDocumento_id);        $this->datagrid->addColumn($column_SaldoDeclarado);        $this->datagrid->addColumn($column_ValorCompensado);        //$this->datagrid->addColumn($column_GED);        $this->datagrid->addColumn($column_Exercicio);        $this->datagrid->addColumn($column_Sequencial);        $this->datagrid->addColumn($column_Competencia);        $this->datagrid->addColumn($column_PERDCOMP_Original);        $this->datagrid->addColumn($column_Situacao);        $this->datagrid->addColumn($column_Cancelamento);        $this->datagrid->addColumn($column_CreditoOriginalInicial);        $this->datagrid->addColumn($column_CreditoOriginalUtilizadoCompensacoes);        $this->datagrid->addColumn($column_CreditoOriginalDisponivel);        $this->datagrid->addColumn($column_CreditoOriginalTransmissao);        $this->datagrid->addColumn($column_SelicAcumulada);        $this->datagrid->addColumn($column_CreditoAtualizado);        $this->datagrid->addColumn($column_DebitosDocumento);        $this->datagrid->addColumn($column_CreditoOriginalUtilizadoDocumento);        $this->datagrid->addColumn($column_SaldoCreditoOriginal);        // creates the datagrid column actions        $order_DataCriacao = new TAction(array($this, 'onReload'));        $order_DataCriacao->setParameter('order', 'DataCriacao');        $column_DataCriacao->setAction($order_DataCriacao);                $order_DataTransmissao = new TAction(array($this, 'onReload'));        $order_DataTransmissao->setParameter('order', 'DataTransmissao');        $column_DataTransmissao->setAction($order_DataTransmissao);                $order_Nr_PERDCOMP = new TAction(array($this, 'onReload'));        $order_Nr_PERDCOMP->setParameter('order', 'Nr_PERDCOMP');        $column_Nr_PERDCOMP->setAction($order_Nr_PERDCOMP);                $order_TipoDocumento_id = new TAction(array($this, 'onReload'));        $order_TipoDocumento_id->setParameter('order', 'TipoDocumento_id');        $column_TipoDocumento_id->setAction($order_TipoDocumento_id);                $order_TipoCredito_id = new TAction(array($this, 'onReload'));        $order_TipoCredito_id->setParameter('order', 'TipoCredito_id');        $column_TipoCredito_id->setAction($order_TipoCredito_id);                       $order_Sequencial = new TAction(array($this, 'onReload'));        $order_Sequencial->setParameter('order', 'Sequencial');        $column_Sequencial->setAction($order_Sequencial);                $order_OrigemDocumento_id = new TAction(array($this, 'onReload'));        $order_OrigemDocumento_id->setParameter('order', 'OrigemDocumento_id');        $column_OrigemDocumento_id->setAction($order_OrigemDocumento_id);                $order_SaldoDeclarado = new TAction(array($this, 'onReload'));        $order_SaldoDeclarado->setParameter('order', 'SaldoDeclarado');        $column_SaldoDeclarado->setAction($order_SaldoDeclarado);                $order_Exercicio = new TAction(array($this, 'onReload'));        $order_Exercicio->setParameter('order', 'Exercicio');        $column_Exercicio->setAction($order_Exercicio);                $order_TipoImposto_ID = new TAction(array($this, 'onReload'));        $order_TipoImposto_ID->setParameter('order', 'TipoImposto_ID');        $column_TipoImposto_ID->setAction($order_TipoImposto_ID);                $order_ValorCompensado = new TAction(array($this, 'onReload'));        $order_ValorCompensado->setParameter('order', 'ValorCompensado');        $column_ValorCompensado->setAction($order_ValorCompensado);                $order_Competencia = new TAction(array($this, 'onReload'));        $order_Competencia->setParameter('order', 'Competencia');        $column_Competencia->setAction($order_Competencia);                $order_PERDCOMP_Original = new TAction(array($this, 'onReload'));        $order_PERDCOMP_Original->setParameter('order', 'PERDCOMP_Original');        $column_PERDCOMP_Original->setAction($order_PERDCOMP_Original);                $order_Situacao = new TAction(array($this, 'onReload'));        $order_Situacao->setParameter('order', 'Situacao');        $column_Situacao->setAction($order_Situacao);                     $order_Cancelamento = new TAction(array($this, 'onReload'));        $order_Cancelamento->setParameter('order', 'Cancelamento');        $column_Cancelamento->setAction($order_Cancelamento);                $order_CreditoOriginalInicial = new TAction(array($this, 'onReload'));        $order_CreditoOriginalInicial->setParameter('order', 'CreditoOriginalInicial');        $column_CreditoOriginalInicial->setAction($order_CreditoOriginalInicial);                $order_CreditoOriginalUtilizadoCompensacoes = new TAction(array($this, 'onReload'));        $order_CreditoOriginalUtilizadoCompensacoes->setParameter('order', 'CreditoOriginalUtilizadoCompensacoes');        $column_CreditoOriginalUtilizadoCompensacoes->setAction($order_CreditoOriginalUtilizadoCompensacoes);                $order_CreditoOriginalDisponivel = new TAction(array($this, 'onReload'));        $order_CreditoOriginalDisponivel->setParameter('order', 'CreditoOriginalDisponivel');        $column_CreditoOriginalDisponivel->setAction($order_CreditoOriginalDisponivel);                $order_CreditoOriginalTransmissao = new TAction(array($this, 'onReload'));        $order_CreditoOriginalTransmissao->setParameter('order', 'CreditoOriginalTransmissao');        $column_CreditoOriginalTransmissao->setAction($order_CreditoOriginalTransmissao);                $order_SelicAcumulada = new TAction(array($this, 'onReload'));        $order_SelicAcumulada->setParameter('order', 'SelicAcumulada');        $column_SelicAcumulada->setAction($order_SelicAcumulada);                $order_CreditoAtualizado = new TAction(array($this, 'onReload'));        $order_CreditoAtualizado->setParameter('order', 'CreditoAtualizado');        $column_CreditoAtualizado->setAction($order_CreditoAtualizado);                $order_DebitosDocumento = new TAction(array($this, 'onReload'));        $order_DebitosDocumento->setParameter('order', 'DebitosDocumento');        $column_DebitosDocumento->setAction($order_DebitosDocumento);                $order_CreditoOriginalUtilizadoDocumento = new TAction(array($this, 'onReload'));        $order_CreditoOriginalUtilizadoDocumento->setParameter('order', 'CreditoOriginalUtilizadoDocumento');        $column_CreditoOriginalUtilizadoDocumento->setAction($order_CreditoOriginalUtilizadoDocumento);                $order_SaldoCreditoOriginal = new TAction(array($this, 'onReload'));        $order_SaldoCreditoOriginal->setParameter('order', 'SaldoCreditoOriginal');        $column_SaldoCreditoOriginal->setAction($order_SaldoCreditoOriginal);                // inline editing                  // define the transformer method over image        $column_Competencia->setTransformer( function($value, $object, $row) {            $date = new DateTime($value);            return $date->format('d/m/Y');        });          // define the transformer method over image        $column_DataCriacao->setTransformer( function($value, $object, $row) {            $date = new DateTime($value);            return $date->format('d/m/Y');        });        // define the transformer method over image        $column_DataTransmissao->setTransformer( function($value, $object, $row) {            $date = new DateTime($value);            return $date->format('d/m/Y');        });          // define the transformer method over image        $column_SaldoDeclarado->setTransformer( function($value, $object, $row) {            return 'R$ ' . number_format($value, 2, ',', '.');        });        // define the transformer method over image        $column_ValorCompensado->setTransformer( function($value, $object, $row) {            return 'R$ ' . number_format($value, 2, ',', '.');        });        // define the transformer method over image        $column_CreditoOriginalInicial->setTransformer( function($value, $object, $row) {            return 'R$ ' . number_format($value, 2, ',', '.');        });        // define the transformer method over image        $column_CreditoOriginalUtilizadoCompensacoes->setTransformer( function($value, $object, $row) {            return 'R$ ' . number_format($value, 2, ',', '.');        });        // define the transformer method over image        $column_CreditoOriginalDisponivel->setTransformer( function($value, $object, $row) {            return 'R$ ' . number_format($value, 2, ',', '.');        });        // define the transformer method over image        $column_CreditoOriginalTransmissao->setTransformer( function($value, $object, $row) {            return 'R$ ' . number_format($value, 2, ',', '.');        });        // define the transformer method over image        $column_CreditoAtualizado->setTransformer( function($value, $object, $row) {            return 'R$ ' . number_format($value, 2, ',', '.');        });        // define the transformer method over image        $column_DebitosDocumento->setTransformer( function($value, $object, $row) {            return 'R$ ' . number_format($value, 2, ',', '.');        });        // define the transformer method over image        $column_CreditoOriginalUtilizadoDocumento->setTransformer( function($value, $object, $row) {            return 'R$ ' . number_format($value, 2, ',', '.');        });        // define the transformer method over image        $column_SaldoCreditoOriginal->setTransformer( function($value, $object, $row) {            return 'R$ ' . number_format($value, 2, ',', '.');        });                // create EDIT action        $action_edit = new TDataGridAction(array('PerdcompForm', 'onEdit'));       // $action_edit->setUseButton(TRUE);        $action_edit->setButtonClass('btn btn-default');        $action_edit->setLabel(_t('Edit'));        $action_edit->setImage('fa:pencil-square-o blue fa-lg');        $action_edit->setField('perdcomp_id');        $this->datagrid->addAction($action_edit);                // create DELETE action        $action_del = new TDataGridAction(array($this, 'onDelete'));      //  $action_del->setUseButton(TRUE);        $action_del->setButtonClass('btn btn-default');        $action_del->setLabel(_t('Delete'));        $action_del->setImage('fa:trash-o red fa-lg');        $action_del->setField('perdcomp_id');        $this->datagrid->addAction($action_del);                // create the datagrid model        $this->datagrid->createModel();                // create the page navigation        $this->pageNavigation = new TPageNavigation;        $this->pageNavigation->setAction(new TAction(array($this, 'onReload')));        $this->pageNavigation->setWidth($this->datagrid->getWidth());                // vertical box container        $container = new TVBox;        $container->style = 'width: 90%';        // $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));        $container->add($this->form);        $container->add($this->datagrid);        $container->add($this->pageNavigation);                parent::add($container);    }    } 

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


ST

Segue link para visualizar o video:
https://drive.google.com/open?id=0B-y1O2RmOkXTbExLaWM0ZUxsSUk
NR

Veja a assinatura do construtor da classe TDBSeekButton
<?php/**     * Class Constructor     * @param  $name name of the form field     * @param  $database name of the database connection     * @param  $form name of the parent form     * @param  $model name of the Active Record to be searched     * @param  $display_field name of the field to be searched and shown     * @param  $receive_key name of the form field to receive the primary key     * @param  $receive_display_field name of the form field to receive the "display field"     */    public function __construct($name, $database, $form, $model, $display_field, $receive_key, $receive_display_field, TCriteria $criteria = NULL)?>

O parâmetro $receive_display_field deve conter o nome do campo no formulário que vai receber a descrição. Você está informando, por exemplo, "TipoDocumentoDescricao", mas não há nenhum campo com esse nome no formulário.
<?php//$TipoDocumento_id  = new TDBSeekButton('TipoDocumento_id', 'perdcomp', $this->form->getName(), 'TipoDocumento', 'TipoDocumentoDescricao', 'TipoDocumento_id', 'TipoDocumentoDescricao');  $TipoDocumento_id  = new 
">TDBSeekButton('TipoDocumento_id', 'perdcomp', $this->form->getName(), 'TipoDocumento', 'TipoDocumentoDescricao', 'TipoDocumento_id', 'tipo_documento');  $TipoDocumentoDescricao     = new TEntry('tipo_documento');?>
ST

Amigo Nataniel,
Obrigado pelo retorno mas não consegui entender sua explicação.
Onde devo realizar alteração no código?
NR

As alterações estão no final da minha resposta anterior. Você deve alterar o último parâmetro do TDBSeekButton para corresponder ao nome do campo no formulário que vai receber essa informação(tipo_documento, no exemplo que usei)
ST

Amigo Nataniel,
Graças a sua ajuda consegui resolver.
Muitíssimo obrigado.
ST

Amigo Nataniel,
Após as alterações sugeridas por você, não consigo nem editar e nem salvar.
NR

Sebastião, as alteração realizadas não devem interferir na edição e gravação. O que ocorre? Você está com os erros habilitados?
ST

Boa noite Nataniel,

Não estou conseguindo identificar o porquê não consigo alterar e nem salvar o registro.
Você pode me ajudar por favor.
Sou iniciante na ferramenta e este é o meu primeiro projeto.

Segue novamente o código do modelo e dos formulários:

Estou enviando anexo, video demonstrativo.

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 $system_user;     /**     * 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('PERDCOMP_Original');        parent::addAttribute('Situacao');        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('GED');        parent::addAttribute('system_user_id');    }        /**     * Method set_origem_documento     * Sample of usage: $perdcomp->origem_documento = $object;     * @param $object Instance of OrigemDocumento     */    public function set_origem_documento(OrigemDocumento $object)    {        $this->origem_documento = $object;        $this->origem_documento_id = $object->OrigemDocumento_id;    }        /**     * Method get_origem_documento     * Sample of usage: $perdcomp->origem_documento->attribute;     * @returns OrigemDocumento instance     */    public function get_origem_documento()    {        // loads the associated object        if (empty($this->origem_documento))            $this->origem_documento = new OrigemDocumento($this->OrigemDocumento_id);            // returns the associated object        return $this->origem_documento->OrigemDocumentoDescricao;    }            /**     * Method set_tipo_credito     * Sample of usage: $perdcomp->tipo_credito = $object;     * @param $object Instance of TipoCredito     */    public function set_tipo_credito(TipoCredito $object)    {        $this->tipo_credito = $object;        $this->tipo_credito_id = $object->TipoCredito_id;    }        /**     * Method get_tipo_credito     * Sample of usage: $perdcomp->tipo_credito->attribute;     * @returns TipoCredito instance     */    public function get_tipo_credito()    {        // loads the associated object        if (empty($this->tipo_credito))            $this->tipo_credito = new TipoCredito($this->TipoCredito_id);            // returns the associated object        return $this->tipo_credito->TipoCreditoDescricao;                    }                 /**     * Method set_tipo_documento     * Sample of usage: $perdcomp->tipo_documento = $object;     * @param $object Instance of TipoDocumento     */    public function set_tipo_documento(TipoDocumento $object)    {        $this->tipo_documento = $object;        $this->tipo_documento_id = $object->TipoDocumento_id;    }        /**     * Method get_tipo_documento     * Sample of usage: $perdcomp->tipo_documento->attribute;     * @returns TipoDocumento instance     */    public function get_tipo_documento()    {        // loads the associated object        if (empty($this->tipo_documento))            $this->tipo_documento = new TipoDocumento($this->TipoDocumento_id);            // returns the associated object        return $this->tipo_documento->TipoDocumentoDescricao;    }            /**     * Method set_tipo_imposto     * Sample of usage: $perdcomp->tipo_imposto = $object;     * @param $object Instance of TipoImposto     */    public function set_tipo_imposto(TipoImposto $object)    {        $this->tipo_imposto = $object;        $this->tipo_imposto_id = $object->TipoImposto_ID;    }        /**     * Method get_tipo_imposto     * Sample of usage: $perdcomp->tipo_imposto->attribute;     * @returns TipoImposto instance     */    public function get_tipo_imposto()    {        // loads the associated object        if (empty($this->tipo_imposto))            $this->tipo_imposto = new TipoImposto($this->TipoImposto_ID);            // returns the associated object        return $this->tipo_imposto->TipoImposto_Descricao;    }        public function set_system_user(SystemUser $object)    {        $this->system_user = $object;        $this->system_user_id = $object->id;    }        /**     * Method get_system_user     * Sample of usage: $perdcomp->system_user->attribute;     * @returns SystemUser instance     */    public function get_system_user()    {        // loads the associated object        if (empty($this->system_user))            $this->system_user = new SystemUser($this->system_user_id);            // returns the associated object        return $this->system_user;    } }Formulário:
<?php/** * PerdcompForm Registration * @author  <your name here> */class PerdcompForm extends TPage{    protected $form; // form        use Adianti\Base\AdiantiStandardFormTrait; // Standard form methods        /**     * Class constructor     * Creates the page and the registration form     */    function __construct()    {        parent::__construct();                $this->setDatabase('perdcomp');              // defines the database        $this->setActiveRecord('Perdcomp');     // defines the active record                // creates the form        $this->form = new TQuickForm('form_Perdcomp');        $this->form->class = 'tform'; // change CSS class                $this->form->style = 'display: table;width:100%'; // change style                // define the form title        $this->form->setFormTitle('Perdcomp');                // create the form fields        $perdcomp_id = new TEntry('perdcomp_id');        $DataCriacao = new TDate('DataCriacao');        $DataTransmissao = new TDate('DataTransmissao');        $Sequencial = new TEntry('Sequencial');        $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');        $OrigemDocumento_id       = new 
">TDBSeekButton('OrigemDocumento_id', 'perdcomp', $this->form->getName(), 'OrigemDocumento', 'OrigemDocumentoDescricao', 'OrigemDocumento_id', 'origem_documento');        $OrigemDocumentoDescricao = new TEntry('origem_documento');        $TipoCredito_id       = new 
">TDBSeekButton('TipoCredito_id', 'perdcomp', $this->form->getName(), 'TipoCredito', 'TipoCreditoDescricao', 'TipoCredito_id', 'tipo_credito');        $TipoCreditoDescricao = new TEntry('tipo_credito');        $SaldoDeclarado = new TEntry('SaldoDeclarado');        $Exercicio = new TEntry('Exercicio');        $TipoImposto_ID       = new 
">TDBSeekButton('TipoImposto_ID', 'perdcomp', $this->form->getName(), 'TipoImposto', 'TipoImposto_Descricao', 'TipoImposto_ID', 'tipo_imposto');        $TipoImposto_Descricao = new TEntry('tipo_imposto');        $ValorCompensado = new TEntry('ValorCompensado');        $Competencia = new TDate('Competencia');        $PERDCOMP_Original = new TEntry('PERDCOMP_Original');        $Situacao = new TEntry('Situacao');        $Cancelamento = new TEntry('Cancelamento');        $CreditoOriginalInicial = new TEntry('CreditoOriginalInicial');        $CreditoOriginalUtilizadoCompensacoes = new TEntry('CreditoOriginalUtilizadoCompensacoes');        $CreditoOriginalDisponivel = new TEntry('CreditoOriginalDisponivel');        $CreditoOriginalTransmissao = new TEntry('CreditoOriginalTransmissao');        $SelicAcumulada = new TEntry('SelicAcumulada');        $CreditoAtualizado = new TEntry('CreditoAtualizado');        $DebitosDocumento = new TEntry('DebitosDocumento');        $CreditoOriginalUtilizadoDocumento = new TEntry('CreditoOriginalUtilizadoDocumento');        $SaldoCreditoOriginal = new TEntry('SaldoCreditoOriginal');       // $Empresa_id       = new TDBSeekButton('Empresa_id', 'perdcomp', $this->form->getName(), 'Empresa', 'EmpresaNome', 'Empresa_id', 'empresa');        //$EmpresaNome = new TEntry('empresa');                   $TipoDocumentoDescricao->setEditable(FALSE);        $TipoDocumento_id->setSize('40');        $TipoDocumentoDescricao->setSize('500');        $OrigemDocumentoDescricao->setEditable(FALSE);        $OrigemDocumento_id->setSize('40');        $OrigemDocumentoDescricao->setSize('500');        $TipoCreditoDescricao->setEditable(FALSE);        $TipoCredito_id->setSize('40');        $TipoCreditoDescricao->setSize('500');        $TipoImposto_Descricao->setEditable(FALSE);        $TipoImposto_ID->setSize('40');        $TipoImposto_Descricao->setSize('500');       // $EmpresaNome->setEditable(FALSE);       // $Empresa_id->setSize('40');        //$EmpresaNome->setSize('500');                    $SaldoDeclarado->setNumericMask(2, ',', '.', TRUE);        $ValorCompensado->setNumericMask(2, ',', '.', TRUE);        $CreditoOriginalInicial->setNumericMask(2, ',', '.', TRUE);        $CreditoOriginalUtilizadoCompensacoes->setNumericMask(2, ',', '.', TRUE);        $CreditoOriginalDisponivel->setNumericMask(2, ',', '.', TRUE);        $CreditoOriginalTransmissao->setNumericMask(2, ',', '.', TRUE);        $SelicAcumulada->setNumericMask(2, ',', '.', TRUE);        $CreditoAtualizado->setNumericMask(2, ',', '.', TRUE);        $DebitosDocumento->setNumericMask(2, ',', '.', TRUE);        $CreditoOriginalUtilizadoDocumento->setNumericMask(2, ',', '.', TRUE);        $SaldoCreditoOriginal->setNumericMask(2, ',', '.', TRUE);        $Nr_PERDCOMP->setMask('99999.99999.999999.9.9.99-9999');        $PERDCOMP_Original->setMask('99999.99999.999999.9.9.99-9999');                      // add the fields        $this->form->addQuickField('Código:', $perdcomp_id,  100 );        $this->form->addQuickField('Data Criação:', $DataCriacao,  100 );        $this->form->addQuickField('Data Transmissão:', $DataTransmissao,  100 );        $this->form->addQuickField('Sequencial:', $Sequencial,  200 );        $this->form->addQuickField('Nº Perdcomp:', $Nr_PERDCOMP,  200 );              $this->form->addQuickFields('Tipo Documento:', [ $TipoDocumento_id, $TipoDocumentoDescricao ] );             $this->form->addQuickFields('Origem Documento:', [ $OrigemDocumento_id, $OrigemDocumentoDescricao ] );             $this->form->addQuickFields('Tipo Crédito:', [ $TipoCredito_id, $TipoCreditoDescricao] );             $this->form->addQuickField('Saldo Declarado:', $SaldoDeclarado,  100 );        $this->form->addQuickField('Exercicio:', $Exercicio,  100 );        $this->form->addQuickFields('Tipo Imposto:', [ $TipoImposto_ID, $TipoImposto_Descricao] );             $this->form->addQuickField('Valor Compensado:', $ValorCompensado,  100 );        $this->form->addQuickField('Competência:', $Competencia,  100 );        $this->form->addQuickField('Perdcomp Original:', $PERDCOMP_Original,  200 );        $this->form->addQuickField('Situação:', $Situacao,  200 );        $this->form->addQuickField('Cancelamento:', $Cancelamento,  200 );        $this->form->addQuickField('Crédito Original Inicial:', $CreditoOriginalInicial,  100 );        $this->form->addQuickField('Crédito Original Utilizado Compensações:', $CreditoOriginalUtilizadoCompensacoes,  100 );        $this->form->addQuickField('Crédito Original Disponível:', $CreditoOriginalDisponivel,  100 );        $this->form->addQuickField('Crédito Original Transmissão:', $CreditoOriginalTransmissao,  100 );        $this->form->addQuickField('Selic Acumulada:', $SelicAcumulada,  100 );        $this->form->addQuickField('Crédito Atualizado:', $CreditoAtualizado,  100 );        $this->form->addQuickField('Débitos Documento:', $DebitosDocumento,  100 );        $this->form->addQuickField('Crédito Original Utilizado Documento:', $CreditoOriginalUtilizadoDocumento,  100 );        $this->form->addQuickField('Saldo Crédito Original:', $SaldoCreditoOriginal,  100);       // $this->form->addQuickFields('Unidade:', [ $Empresa_id, $EmpresaNome ], new TRequiredValidator );                             if (!empty($perdcomp_id))        {            $perdcomp_id->setEditable(FALSE);        }                /** samples         $this->form->addQuickFields('Date', array($date1, new TLabel('to'), $date2)); // side by side fields         $fieldX->addValidation( 'Field X', new TRequiredValidator ); // add validation         $fieldX->setSize( 100, 40 ); // set size         **/                 // create the form actions        $this->form->addQuickAction(_t('Save'), new TAction(array($this, 'onSave')), 'fa:floppy-o');        $this->form->addQuickAction(_t('New'),  new TAction(array($this, 'onEdit')), 'bs:plus-sign green');        $this->form->addQuickAction(_t('Back to the listing'), new TAction(array('PerdcompList', 'onReload')), 'fa:table blue');                  // vertical box container        $container = new TVBox;        $container->style = 'width: 90%';        // $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));        $container->add($this->form);                parent::add($container);                    }}:Listagem da datagrid:
<?php/** * PerdcompList Listing * @author  <your name here> */class PerdcompList extends TStandardList{    protected $form;     // registration form    protected $datagrid; // listing    protected $pageNavigation;    protected $formgrid;    protected $deleteButton;    protected $transformCallback;        /**     * Page constructor     */    public function __construct()    {        parent::__construct();                parent::setDatabase('perdcomp');            // defines the database        parent::setActiveRecord('Perdcomp');   // defines the active record        parent::setDefaultOrder('perdcomp_id', 'asc');         // defines the default order        // parent::setCriteria($criteria) // define a standard filter        parent::addFilterField('perdcomp_id', 'like', 'perdcomp_id'); // filterField, operator, formField        parent::addFilterField('DataCriacao', 'like', 'DataCriacao'); // filterField, operator, formField        parent::addFilterField('DataTransmissao', 'like', 'DataTransmissao'); // filterField, operator, formField        parent::addFilterField('Sequencial', 'like', 'Sequencial'); // filterField, operator, formField        parent::addFilterField('Nr_PERDCOMP', 'like', 'Nr_PERDCOMP'); // filterField, operator, formField        parent::addFilterField('TipoDocumento_id', 'like', 'TipoDocumento_id'); // filterField, operator, formField        parent::addFilterField('OrigemDocumento_id', 'like', 'OrigemDocumento_id'); // filterField, operator, formField        parent::addFilterField('TipoCredito_id', 'like', 'TipoCredito_id'); // filterField, operator, formField        parent::addFilterField('SaldoDeclarado', 'like', 'SaldoDeclarado'); // filterField, operator, formField        parent::addFilterField('Exercicio', 'like', 'Exercicio'); // filterField, operator, formField        parent::addFilterField('TipoImposto_ID', 'like', 'TipoImposto_ID'); // filterField, operator, formField                // creates the form        $this->form = new TQuickForm('form_search_Perdcomp');        $this->form->class = 'tform'; // change CSS class                $this->form->style = 'display: table;width:100%'; // change style        $this->form->setFormTitle('Filtro 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', 'TipoImposto_Descricao', 'TipoImposto_ID', 'tipo_imposto');        $TipoImposto_Descricao = new TEntry('tipo_imposto');        $Exercicio = new TEntry('Exercicio');               $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');             $TipoImposto_Descricao->setEditable(FALSE);        $TipoImposto_ID->setSize('40');        $TipoImposto_Descricao->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('Tipo Imposto:', [ $TipoImposto_ID, $TipoImposto_Descricao] );                             $this->form->addQuickField('Exercício', $Exercicio,  100 );                    // keep the form filled during navigation with session data        $this->form->setData( TSession::getValue('Perdcomp_filter_data') );                        // add the search form actions        $this->form->addQuickAction(_t('Find'), new TAction(array($this, 'onSearch')), 'fa:search');        $this->form->addQuickAction(_t('New'),  new TAction(array('PerdcompForm', 'onEdit')), 'bs:plus-sign green');                // creates a DataGrid        $this->datagrid = new TDataGrid;           $this->datagrid->enablePopover('Image', "<img src='{photo_path}'>");                $this->datagrid->style = 'width: 100%';        $this->datagrid->datatable = 'true';       // $this->datagrid->enablePopover('Popover', 'Hi <b> {name} </b>');                // creates the datagrid columns        $column_perdcomp_id = new TDataGridColumn('perdcomp_id', 'Código', 'right');        $column_DataCriacao = new TDataGridColumn('DataCriacao', 'Data Criação', 'left');        $column_DataTransmissao = new TDataGridColumn('DataTransmissao', 'Data Transmissão', 'left');        $column_Nr_PERDCOMP = new TDataGridColumn('Nr_PERDCOMP', 'Nº Perdcomp', 'left');        $column_TipoDocumento_id = new TDataGridColumn('tipo_documento', 'Tipo Documento', 'left');        $column_TipoCredito_id = new TDataGridColumn('tipo_credito', 'Tipo Crédito', 'left');        $column_TipoImposto_ID = new TDataGridColumn('tipo_imposto', 'Tipo Imposto', 'left');        $column_OrigemDocumento_id = new TDataGridColumn('origem_documento', 'Origem Documento', 'left');        $column_SaldoDeclarado = new TDataGridColumn('SaldoDeclarado', 'Saldo Declarado', 'right');        $column_Exercicio = new TDataGridColumn('Exercicio', 'Exercício', 'right');        $column_ValorCompensado = new TDataGridColumn('ValorCompensado', 'Valor Compensado', 'right');        $column_Sequencial = new TDataGridColumn('Sequencial', 'Sequencial', 'left');        $column_Competencia = new TDataGridColumn('Competencia', 'Competência', 'left');        $column_PERDCOMP_Original = new TDataGridColumn('PERDCOMP_Original', 'Perdcomp Original', 'left');        $column_Situacao = new TDataGridColumn('Situacao', 'Situação', 'left');        $column_Cancelamento = new TDataGridColumn('Cancelamento', 'Cancelamento', 'left');        $column_CreditoOriginalInicial = new TDataGridColumn('CreditoOriginalInicial', 'Crédito Original Inicial', 'right');        $column_CreditoOriginalUtilizadoCompensacoes = new TDataGridColumn('Credito Original Utilizado Compensações', 'Creditooriginalutilizadocompensacoes', 'right');        $column_CreditoOriginalDisponivel = new TDataGridColumn('Crédito Original Disponível', 'Crédito Original Disponível', 'right');        $column_CreditoOriginalTransmissao = new TDataGridColumn('Credito Original Transmissão', 'Crédito Original Transmissão', 'right');        $column_SelicAcumulada = new TDataGridColumn('Selic Acumulada', 'Selic Acumulada', 'right');        $column_CreditoAtualizado = new TDataGridColumn('CreditoAtualizado', 'Crédito Atualizado', 'right');        $column_DebitosDocumento = new TDataGridColumn('DebitosDocumento', 'Débitos Documento', 'right');        $column_CreditoOriginalUtilizadoDocumento = new TDataGridColumn('CreditoOriginalUtilizadoDocumento', 'Crédito Original Utilizado Documento', 'right');        $column_SaldoCreditoOriginal = new TDataGridColumn('SaldoCreditoOriginal', 'Saldo Crédito Original', 'right');      //  $column_Empresa_id = new TDataGridColumn('Empresa_id', 'Empresa', 'right');        // add the columns to the DataGrid        $this->datagrid->addColumn($column_perdcomp_id);        $this->datagrid->addColumn($column_DataCriacao);        $this->datagrid->addColumn($column_DataTransmissao);        $this->datagrid->addColumn($column_Sequencial);        $this->datagrid->addColumn($column_Nr_PERDCOMP);        $this->datagrid->addColumn($column_TipoDocumento_id);        $this->datagrid->addColumn($column_OrigemDocumento_id);        $this->datagrid->addColumn($column_TipoCredito_id);        $this->datagrid->addColumn($column_TipoImposto_ID);        $this->datagrid->addColumn($column_SaldoDeclarado);        $this->datagrid->addColumn($column_ValorCompensado);        $this->datagrid->addColumn($column_Exercicio);        $this->datagrid->addColumn($column_Competencia);        $this->datagrid->addColumn($column_PERDCOMP_Original);        $this->datagrid->addColumn($column_Situacao);        $this->datagrid->addColumn($column_Cancelamento);        $this->datagrid->addColumn($column_CreditoOriginalInicial);        $this->datagrid->addColumn($column_CreditoOriginalUtilizadoCompensacoes);        $this->datagrid->addColumn($column_CreditoOriginalDisponivel);        $this->datagrid->addColumn($column_CreditoOriginalTransmissao);        $this->datagrid->addColumn($column_SelicAcumulada);        $this->datagrid->addColumn($column_CreditoAtualizado);        $this->datagrid->addColumn($column_DebitosDocumento);        $this->datagrid->addColumn($column_CreditoOriginalUtilizadoDocumento);        $this->datagrid->addColumn($column_SaldoCreditoOriginal);     //   $this->datagrid->addColumn($column_Empresa_id);                $order_perdcomp_id = new TAction(array($this, 'onReload'));        $order_perdcomp_id->setParameter('order', 'perdcomp_id');        $column_perdcomp_id->setAction($order_perdcomp_id);                $order_DataCriacao = new TAction(array($this, 'onReload'));        $order_DataCriacao->setParameter('order', 'DataCriacao');        $column_DataCriacao->setAction($order_DataCriacao);                $order_DataTransmissao = new TAction(array($this, 'onReload'));        $order_DataTransmissao->setParameter('order', 'DataTransmissao');        $column_DataTransmissao->setAction($order_DataTransmissao);                               // define the transformer method over image        $column_Competencia->setTransformer( function($value, $object, $row) {            $date = new DateTime($value);            return $date->format('d/m/Y');        });          // define the transformer method over image        $column_DataCriacao->setTransformer( function($value, $object, $row) {            $date = new DateTime($value);            return $date->format('d/m/Y');        });        // define the transformer method over image        $column_DataTransmissao->setTransformer( function($value, $object, $row) {            $date = new DateTime($value);            return $date->format('d/m/Y');        });                          // define the transformer method over image        $column_SaldoDeclarado->setTransformer( function($value, $object, $row) {            return 'R$ ' . number_format($value, 2, ',', '.');        });        // define the transformer method over image        $column_ValorCompensado->setTransformer( function($value, $object, $row) {            return 'R$ ' . number_format($value, 2, ',', '.');        });        // define the transformer method over image        $column_CreditoOriginalInicial->setTransformer( function($value, $object, $row) {            return 'R$ ' . number_format($value, 2, ',', '.');        });        // define the transformer method over image        $column_CreditoOriginalUtilizadoCompensacoes->setTransformer( function($value, $object, $row) {            return 'R$ ' . number_format($value, 2, ',', '.');        });        // define the transformer method over image        $column_CreditoOriginalDisponivel->setTransformer( function($value, $object, $row) {            return 'R$ ' . number_format($value, 2, ',', '.');        });        // define the transformer method over image        $column_CreditoOriginalTransmissao->setTransformer( function($value, $object, $row) {            return 'R$ ' . number_format($value, 2, ',', '.');        });        // define the transformer method over image        $column_CreditoAtualizado->setTransformer( function($value, $object, $row) {            return 'R$ ' . number_format($value, 2, ',', '.');        });        // define the transformer method over image        $column_DebitosDocumento->setTransformer( function($value, $object, $row) {            return 'R$ ' . number_format($value, 2, ',', '.');        });        // define the transformer method over image        $column_CreditoOriginalUtilizadoDocumento->setTransformer( function($value, $object, $row) {            return 'R$ ' . number_format($value, 2, ',', '.');        });        // define the transformer method over image        $column_SaldoCreditoOriginal->setTransformer( function($value, $object, $row) {            return 'R$ ' . number_format($value, 2, ',', '.');        });                // create EDIT action        $action_edit = new TDataGridAction(array('PerdcompForm', 'onEdit'));        $action_edit->setButtonClass('btn btn-default');        $action_edit->setLabel(_t('Edit'));        $action_edit->setImage('fa:pencil-square-o blue fa-lg');        $action_edit->setField('perdcomp_id');        $this->datagrid->addAction($action_edit);                          // create DELETE action        $action_del = new TDataGridAction(array($this, 'onDelete'));        $action_del->setButtonClass('btn btn-default');        $action_del->setLabel(_t('Delete'));        $action_del->setImage('fa:trash-o red fa-lg');        $action_del->setField('perdcomp_id');        $this->datagrid->addAction($action_del);                // create the datagrid model        $this->datagrid->createModel();                // create the page navigation        $this->pageNavigation = new TPageNavigation;        $this->pageNavigation->setAction(new TAction(array($this, 'onReload')));        $this->pageNavigation->setWidth($this->datagrid->getWidth());                // vertical box container        $container = new TVBox;        $container->style = 'width: 90%';        // $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));        $container->add($this->form);        $container->add($this->datagrid);        $container->add($this->pageNavigation);                parent::add($container);    }    }</your></your>
ST

Segue link para visualizar o video:
https://drive.google.com/file/d/0B-2fNSIBtb1udkVTWl8zZTFXTHM/view?usp=drivesdk
NR

Sebastião, ative a exibição dos erros do PHP
ST

Nataniel,
Ao habilitar os erros, está apresentando as seguintes mensagens:
Notice: A non well formed numeric value encountered in C:xampphtdocsperdcomplibadiantiwidgetdatagridTDataGrid.php on line 843


Veja imagem no seguinte link:
prntscr.com/gcy6rd
NR

Qual a versão do PHP?

Além disso, verifique os erros gerados após clicar no Salvar, pois para a página ficar em branco deve estar ocorrendo um fatal error
Novo Comentário