Trepository usando orderBy com Tcriteria não funciona Pessoal, Estou tentando ordenar meu grid detail(memória) porém quando leio a tabela e passo um Tcritéria e um Orderby, a ordenação não acontece. Quanto uso somente orderby funciona, porém não filtro os registros da tabela mestre. A quem puder ajudar agradeço. ...
VC
Trepository usando orderBy com Tcriteria não funciona  
Pessoal,

Estou tentando ordenar meu grid detail(memória) porém quando leio a tabela e passo um Tcritéria e um Orderby, a ordenação não acontece.
Quanto uso somente orderby funciona, porém não filtro os registros da tabela mestre.

A quem puder ajudar agradeço.


 
  1. <?php
  2. public function onEdit($param)
  3. {
  4. try
  5. {
  6. TTransaction::open('datasiop');
  7. if (isset($param['key']))
  8. {
  9. $key = $param['key'];
  10. $object = new BzmViagem($key);
  11. $repo = new TRepository('ocorrencia'); //aqui tabela detail
  12. $repo->orderBy('DATA_OCORRENCIA'); /aqui iinformo a coluna de order by
  13. $criteria = new TCriteria;
  14. $criteria->add(new TFilter('id_viagem', '=',$key )); // aqui filtro para pegar os detalhes do master
  15. $items = $repo->load($criteria); // aqui carrego a tabela detail
  16. // $items = ocorrencia::where('id_viagem', '=', $key)->load();
  17. // $items = ocorrencia::orderBy('DATA_OCORRENCIA')->load();
  18. foreach( $items as $item )
  19. {
  20. $item->uniqid = uniqid();
  21. $row = $this->detail_list->addItem( $item );
  22. $row->id = $item->uniqid;
  23. }
  24. $this->form->setData($object);
  25. TTransaction::close();
  26. }
  27. else
  28. {
  29. $this->form->clear(TRUE);
  30. }
  31. }
  32. catch (Exception $e) // in case of exception
  33. {
  34. new TMessage('error', $e->getMessage());
  35. TTransaction::rollback();
  36. }
  37. }

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (1)


NR

A função orderBy é usada para o carregamento estático de coleções e não pode ser usada com o criteria. Deve usar um ou outro:
 
  1. <?php
  2. // exemplo 1
  3. $items = $repo->where('id_viagem', '=',$key)->orderBy('DATA_OCORRENCIA')->load();
  4. // exemplo 2
  5. $criteria = new TCriteria;
  6. $criteria->add(new TFilter('id_viagem', '=',$key ));
  7. $criteria->setProperty('order','DATA_OCORRENCIA');
  8. $items = $repo->load($criteria);
  9. ?>