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:
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...
- <?php
- $action_ver_nfe= new TDataGridAction(array('NfeCadastroForm', 'onEdit'));
- $action_ver_nfe->setLabel('Editar NFe');
- $action_ver_nfe->setImage('far:edit fa-lg');
- $action_ver_nfe->setField('nfe_id');
- $action_ver_nfe->setDisplayCondition( array($this, 'displayVerNfe') );
- ?>
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...
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á!
"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.
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...