GE
Product Massive Update com TCombo
Oi
Galera.
Alguém já usou o atulizador parecido com deste exemplo:
www.adianti.com.br/framework_files/tutor/index.php?class=ProductUpda
Eu estou tentando usar o exemplo acima em uma FormList, só que ao invés de usar TEntry, eu estou usando TCombos.
Estou com problema ao capturar o valor selecionado na combo, nesta parte do código:
a variavel $field->getValue(); vem vazia...
Galera.
Alguém já usou o atulizador parecido com deste exemplo:
www.adianti.com.br/framework_files/tutor/index.php?class=ProductUpda
Eu estou tentando usar o exemplo acima em uma FormList, só que ao invés de usar TEntry, eu estou usando TCombos.
Estou com problema ao capturar o valor selecionado na combo, nesta parte do código:
function onAtualizar()
{
$data = $this->form->getData();
$this->form->setData($data); // keep the form filled
try
{
TTransaction::open('atividade');
foreach ($this->form->getFields() as $name => $field)
{
if ($field instanceof TDBCombo)
{
if($name == 'sistema_id_10')
{
print_r($field);
}
//var_dump($field);
// print $name. ' teste '.$field->getValue().'<br/>';
$parts = explode('_', $name);
$id = $parts[2];
if($parts[0] == 'ticket')
{
$object = new TipoAtividade($id);
$object->ticket_id = $field->getValue();
//$object->store();
}
if($parts[0] == 'sistema')
{
$object = new TipoAtividade($id);
$object->sistema_id = $field->getValue();
//$object->store();
}
}
}
new TMessage('info', 'Tipos de atividades atualizados');
TTransaction::close();
}
catch (Exception $e)
{
// show the message
new TMessage('error', $e->getMessage());
}
}
a variavel $field->getValue(); vem vazia...
Tente alterar:
if ($field instanceof TDBCombo)
Por
if ($field instanceof TCombo)
adianti.com.br/forum/pt/view_1592?datagrid-com-campos-de-formulario-
Oi Felipe.
Troquei inclusive a TDBCombo por TCombo, preenchendo o conteudo com TRepository.
Tu já usou o exemplo do Jackson?
Eu vou tentar usar adaptar o arquivo dele sem as instancias no banco para ver o que estou fazendo que não consigo pegar o value do TCombo.
Não usei, mas imaginei que como a TDBCombo estende TCombo poderia resolver, pelo que vi rapidamente do exemplo parece que a combo dele é manual essa é a única diferença. Deve ser algo nesse sentido tipo ser necessário percorrer o key assim como fazemos no multifield.
Eu consegui implementar o código do Jackson, só que somente em uma tela com datagrid.
Eu gostaria de usar na tela em que permite a inclusao/edicao de itens na datagrid.
Dai parece q ele se perde nos forms...
Eu digo em uma tela como essa:
www.adianti.com.br/framework_files/tutor/index.php?class=CompleteFor
Posta seu código para analisarmos.
O erro seu está no onSave certo ?
Imagino que nessa linha ele está trazendo varios id´s por causa do onReload, por isso ocorre o erro.
$object = $this->form->getData('TipoAtividade');
Se estiver certo altera para
$object = $this->form->getData();
tb da erro...
o problema eh manter as duas edições (tanto na datagrid quanto no formulario para criar um novo item ou editar um item da listagem)