Conheça as melhorias da versão 8.0, 8.1, 8.2!
Clique aqui para saber mais
Dúvida com setField "Campo não existe ou contém valor null" Bom dia, recentemente atualizei um sistema da versão 4 do adianti para a última, ai tem uma funcionalidade que me deixou em dúvida, antigamente eu declarava alguns botões assim: ...
IV
Dúvida com setField "Campo não existe ou contém valor null"  
Bom dia, recentemente atualizei um sistema da versão 4 do adianti para a última, ai tem uma funcionalidade que me deixou em dúvida, antigamente eu declarava alguns botões assim:

 
  1. <?php
  2. $action_ver_nfe= new TDataGridAction(array('NfeCadastroForm', 'onEdit'));
  3. $action_ver_nfe->setLabel('Editar NFe');
  4. $action_ver_nfe->setImage('far:edit fa-lg');
  5. $action_ver_nfe->setField('nfe_id');
  6. $action_ver_nfe->setDisplayCondition( array($this, 'displayVerNfe') );
  7. ?>

E isso ocasiona o erro abaixo:

https://prnt.sc/v9e1fv

O Nfe id as vezes não existe, mas antes não dava erro igual ao print... Até pq o displayCondition não mostraria a ação nesses casos...

Para contornar eu tenho de criar uma outra função, que chama o objeto, verifica o nfe_id e da um loadPage, porém é bastante código a mais, gostaria de saber se estou fazendo errado ou pode ser algum erro do Fw mesmo...

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


IV

Como resultado disso, recriei a classe TDataGridAction mudando o prepare para não lançar exceção e assim não dar esse erro, mas fica a sugestão para próxima versão caso queiram:

https://prnt.sc/v9el7s

Assim consigo ter listas dessa forma:

https://prnt.sc/v9eomc

De qualquer forma, me informem caso eu tenha feito algo desnecessário haha, obrigado desde já!
NR

"Para contornar eu tenho de criar uma outra função, que chama o objeto, verifica o nfe_id e da um loadPage"
Não entendi o motivo do loadPage. A função chamada pela displayCondition recebe todo o objeto como parâmetro, então você pode testar qualquer atributo diretamente.
IV

Ai é que ta, a condição da false, o botão não exibe, e mesmo assim ele exige que o atributo nfe_id exista no objeto...