Lançado Adianti Framework 7.6!
Clique aqui para saber mais
onEdit não carrega item salvo na TDBCombo Fala galera! Estou enfrentando alguns problemas com algumas telas no meu projeto. A tela tem como propósito o cadastro de solicitação de garantia de um determinado produto. O formulário foi criado e implementado o trecho de codigo no onExitAction, para que quando selecionado o pedido, seja carregado no campo cliente o cliente respectivo. if( !empty($params['orcamento_id']) ) ...
F
onEdit não carrega item salvo na TDBCombo  
Fala galera!
Estou enfrentando alguns problemas com algumas telas no meu projeto. A tela tem como propósito o cadastro de solicitação de garantia de um determinado produto.
O formulário foi criado e implementado o trecho de codigo no onExitAction<b/>, para que quando selecionado o pedido, seja carregado no campo cliente o cliente respectivo.
if( !empty($params['orcamento_id']) ) { $orcamento = new Orcamento($params['orcamento_id']); TForm::sendData('form_Garantia', (object) ['cliente_id' => $orcamento->cliente_id ]); } else { TEntry::clearField('form_Garantia', 'cliente_id'); }


Sei que se alterar de:
TForm::sendData('form_Garantia', (object) ['cliente_id' => $orcamento->cliente_id ]);
para
TForm::sendData('form_Garantia', (object) ['cliente_id' => $orcamento->cliente->nome ]);
no campo aparecerá o nome. Porém o problema que ao salvar ele envia o nome e não o id. Como contornar isso, fazendo com que no lugar do id mostre o nome, salvando o id relacionado?

Outro problema ainda nesta mesma tela é a carga de um item ja salvo. Todos os campos vem preenchidos conforme dados das tabelas, só o campo produto que não. Para o campo produto, também foi implementado o trecho de codigo abaixo também no onExitAction, para que seja carregado somente os itens daquele pedido e desta lista carregada o cliente possa selecionar um dos itens(produtos) e solicitar a garantia.
if( !empty($params['orcamento_id']) ) { $orcamento = new Orcamento($params['orcamento_id']); $criteria = TCriteria::create( ['orcamento_id' => $params['orcamento_id'] ] ); TDBCombo::reloadFromModel('form_Garantia', 'produto_id', 'landini', 'Pedido', 'produto_id', '({produto_id}) - {produto->nome} ', 'produto_id', $criteria, TRUE); } else { TCombo::clearField('form_Garantia', 'produto_id'); }

Esta informação foi coletada aqui mesmo no forum e funcionou parcialmente.

Então o meu onExitAction ficou o seguinte:
public static function onExitAction( $params ) { try { TTransaction::open('xxxxxxx'); if( !empty($params['orcamento_id']) ) { $orcamento = new Orcamento($params['orcamento_id']); TForm::sendData('form_Garantia', (object) ['cliente_id' => $orcamento->cliente_id ]); $criteria = TCriteria::create( ['orcamento_id' => $params['orcamento_id'] ] ); TDBCombo::reloadFromModel('form_Garantia', 'produto_id', 'landini', 'Pedido', 'produto_id', '({produto_id}) - {produto->nome} ', 'produto_id', $criteria, TRUE); } else { TEntry::clearField('form_Garantia', 'cliente_id'); TCombo::clearField('form_Garantia', 'produto_id'); } TTransaction::close(); } catch (Exception $e) { new TMessage('error', $e->getMessage()); TTransaction::rollback(); } }



Na DataGrid o produto é mostrado normalmente, porem ao clicar no editar ele não carrega na combo.

Conto com o apoio, e antecipadamente agradeço!

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (0)