MF
Paginação com Query Manual
Fechado
Alguém possui um exemplo de paginação com o resultado de uma query manual?
- <?php
- function onReload($param)
- {
- try
- {
- $this->datagrid->clear();
- $devolucao = new ValoresManualQuery;
- $result = $devolucao->FindDevolucaoByIDcredor(245);
- $count = $result->rowCount();
- if ($result)
- {
- while ($row = $result->fetch(PDO::FETCH_OBJ))
- {
- $item = new stdClass();
- $item->devolucao = TDate::date2br($row->devolucao);
- $item->idcredor = $row->idcredor;
- $item->idborderodevolucao = 'Borderô de Entrega ' . $row->idborderodevolucao;
- $this->datagrid->addItem($item);
- }
- }
-
- $this->pageNavigation->setCount($count); // count of records
- $this->pageNavigation->setProperties($param); // order, page
- $this->pageNavigation->setLimit(3); // limit
-
- $this->loaded = true;
- }
- catch (Exception $e) // in case of exception
- {
- new TMessage('error', '<b>Error</b> ' . $e->getMessage());
- }
- }
- ?>
Oi Matheus,
Que tal transformar a query manual em uma VIEW no banco, e criar uma Active Record para manipular aquela View? Daí fica fácil paginar, pq fica no onReload padrão.
abraços,
Pablo
Realmente ficou mais fácil, vlw pela dica.
Oi Pablo,
Depois de muito tempo retorno ao desenvolvimento com o framework.
Não fui bem claro na explicação.
Me refiro a query manual quando estou utilizando "group by", pois não posso utilizar na view, e desconheço outra maneira de utilizar o "group by" com o model ou repository.
Grato.
Neste artigo eu falo um pouco a respeito:
www.adianti.com.br/forum/pt/view_879?relatorios-com-queries-complexa
Oi Pablo!
Eu já utilizo desta maneira, crio a viewers e utilizo como model. Mas eu preciso utilizar o "group by" na minha instrução, e utilizando model não tem como.
O Group by é dinâmico?
Não.
Então não entendi.
Essa é a consulta que estou fazendo. Criei uma procedure no banco, hoje uso o datagrid scroollabe que é show de bola, mas se eu quisesse usar numa grid com paginação não consegui.
SELECT c.idclasses AS codigo, c.`descricao` AS status,
COUNT(d.iddevedores) AS quantidade, cl.idclientes
FROM `classes` c, `devedores` d, `clientes` cl,`pessoas` p
WHERE
d.`classes_idstatus` = c.`idclasses`
AND d.`pessoas_idpessoas` = p.`idpessoas`
AND cl.`idclientes` = d.`clientes_idclientes`
and cl.idclientes = (PASSO O PARAMETRO)
group by status
order by quantidade desc;
Essa thread ficou para trás... mas vamos lá...
Cria a view sem o filtro