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.
Sei que se alterar de:
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.
Esta informação foi coletada aqui mesmo no forum e funcionou parcialmente.
Então o meu onExitAction ficou o seguinte:
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!
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!