Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Totalizar Mestre/Detalhe do Studio Criei um Form Mestre/Detalhe com o Studio e acresci uma função totalizadora, assim: Ao abrir-se (editar) o Form a soma está lá como o esperado, porém ao inserir ...
JF
Totalizar Mestre/Detalhe do Studio  
Criei um Form Mestre/Detalhe com o Studio e acresci uma função totalizadora, assim:
  1. <?php
  2. // ...
  3. $total $this->detail_list->addColumn( new TDataGridColumn('faturadetalheitem''Valor(R$)''right'100) );
  4. // define totais
  5. $total->setTotalFunction( function($values) {return array_sum((array) $values);});
  6. ?>

Ao abrir-se (editar) o Form a soma está lá como o esperado, porém ao inserir algum dado a soma não está sendo executada dinamicamente. Acho que é na ação do botão Registrar que não mexi:
  1. <?php
  2. $add TButton::create('add', [$this'onDetailAdd'], 'Registrar''fa:plus-circle green');
  3. $add->getAction()->setParameter('static','1'); // Aqui?
  4. $this->form->addFields( [$add] );
  5. ?>

Calculo que seja no setParameter do getAction(), mas não encontrei nada sobre o assunto. Também pode ser no onDetailAdd (mostro abaixo), mas não tenho nenhuma ideia. Alguém tem sugestão?
  1. <?php
  2.     public function onDetailAdd$param )
  3.     {
  4.         try
  5.         {
  6.             $this->form->validate();
  7.             $data $this->form->getData();
  8.             
  9.             $uniqid = !empty($data->detail_uniqid) ? $data->detail_uniqid uniqid();
  10.             $grid_data = [];
  11.             $grid_data['uniqid'] = $uniqid;
  12.             $grid_data['idfaturadetalheitem'] = $data->detail_idfaturadetalheitem;
  13.             $grid_data['faturadetalhe'] = $data->detail_faturadetalhe;
  14.             $grid_data['faturadetalheitem'] = $data->detail_faturadetalheitem;
  15.             $row $this->detail_list->addItem( (object) $grid_data );
  16.             $row->id $uniqid;
  17.             TDataGrid::replaceRowById('FaturaDetalheItem_list'$uniqid$row);
  18.             $data->detail_uniqid '';
  19.             $data->detail_idfaturadetalheitem '';
  20.             $data->detail_faturadetalhe '';
  21.             $data->detail_faturadetalheitem '';
  22.             TForm::sendData'form_Fatura'$datafalsefalse );
  23.         }
  24.         catch (Exception $e)
  25.         {
  26.             $this->form->setData$this->form->getData());
  27.             new TMessage('error'$e->getMessage());
  28.         }
  29.     }
  30. ?>

Sugestões?

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 (2)


NR

Segundo o changelog da 7.2 o totalizador deve funcionar também com telas estáticas, conforme exemplo do tutor:
https://adianti.com.br/framework_files/tutor/index.php?class=SaleForm
JF

VALEU Nataniel. Obrigado!!!!