Lançado Adianti Framework 7.6!
Clique aqui para saber mais
TFieldList ficando com os campos trocados ao carregar os dados Olá estou com problemas no compnente TFieldList ao carregar os dados de onEdit, o componente fica quebrado e fica todo desajustado. Como posso corrigir este erro?...
JL
TFieldList ficando com os campos trocados ao carregar os dados  
Olá estou com problemas no compnente TFieldList ao carregar os dados de onEdit, o componente fica quebrado e fica todo desajustado. Como posso corrigir este erro?

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (4)


NR

Você está populando o fieldlist de forma estática? Poste o código da onEdit
JL

public function onEdit( $param )
{
try
{
if (isset($param['key']))
{
$key = $param['key']; // get the parameter $key
TTransaction::open(self::$database); // open a transaction

$object = new Agendamento($key); // instantiates the Active Record

//$procedimento = Agendamento::find($key)
// ->belongsToMany('Procedimentos', 'AgendamentoProcedimento','agendamento_id', 'procedimentos_id');

$procedimento = $object->getProcedimento();

$data = new stdClass;
$data->procedimentos_id = [];
if(!empty($procedimento)){
$object->view = $param['view'];
$num = count( $procedimento );

// TFieldList::clear('my_field_list');

TFieldList::addRows('my_field_list',$num - 1);
foreach ($procedimento as$k=> $item) {

$data->procedimentos_id[$k] = $item->procedimentos_id;
$data->quantidade[$k] = $item->quantidade;
$data->number[$k] = $item->number;
TForm::sendData(self::$formName,$data);
}
var_dump($data,$num);
}

//recria os campos dinamicamente e carrega os dados

$this->form->setData($object); // fill the form

TTransaction::close(); // close the transaction
}
else
{
$this->form->clear();
}
}
catch (Exception $e) // in case of exception
{
new TMessage('error', $e->getMessage()); // shows the exception error message
TTransaction::rollback(); // undo all pending operations
}
}
NR

Na onEdit você pode usar diretamente a função addDetail:
  1. <?php
  2. $this->product_list->addDetail($item);
  3. ?>

Veja o exemplo abaixo:
https://adianti.com.br/framework_files/tutor/index.php?class=SaleMultiValueForm&method=onEdit&key=1

A forma que você usou não está errada, mas é mais indicada para casos de ações estáticas, como no exemplo abaixo:
https://adianti.com.br/framework_files/tutor/index.php?class=FormFieldListEventsView

E nesses casos, é necessário considerar um timeout de pelo menos 50 ms para cada item adicionado:
  1. <?php
  2. TForm::sendData('my_form'$datafalsetrue200); // 200 ms of timeout after ( 50 * 4 itens do exemplo = 200 )
  3. ?>
JL

Muito obrigado Natanie, me ajudou bastante.