JC
Total Geral Datagrid.
Saudações a todos, em relação a soma de valores no datagrid Acompanhando os tópicos do fórum
www.adianti.com.br/forum/pt/view_3365?mostrar-soma-valor-total-de-to
www.adianti.com.br/forum/pt/view_3264?datagrid-somar-coluna-de-valor
Aplicado no onReload conforme abaixo eu obtenho o valor total do object->vl_repasse de acordo com os filtros de data. Ok. Mas o resultado é por pagina e o que eu preciso é apresentar na consulta é o resultado do valor total de todas as paginas
No intuito de obter o resultado pretendido utilizei o exemplo do Nataniel, inserindo na
na model: AdmRequisita
E na página dentro do onReload
Obtenho essa informação:
Notice: Undefined variable: model in C:Program FilesVertrigoServwwwcrcappcontroladmAdmRequisitaList.class.php on line 331
Fatal error: Call to a member function getSum() on a non-object in C:Program FilesVertrigoServwwwcrcappcontroladmAdmRequisitaList.class.php on line 331
Qual a melhor maneira para obter o resultado pretendido?
www.adianti.com.br/forum/pt/view_3365?mostrar-soma-valor-total-de-to
www.adianti.com.br/forum/pt/view_3264?datagrid-somar-coluna-de-valor
Aplicado no onReload conforme abaixo eu obtenho o valor total do object->vl_repasse de acordo com os filtros de data. Ok. Mas o resultado é por pagina e o que eu preciso é apresentar na consulta é o resultado do valor total de todas as paginas
- <?php
- if ($objects)
- {
- // iterate the collection of active records
- foreach ($objects as $object)
- {
- $object->dt_solicitado = TDate::date2br($object->dt_solicitado);
- $object->dt_repasse = TDate::date2br($object->dt_repasse);
- $total += str_replace(',', '', $object->vl_repasse);
- // add the object inside the datagrid
- $this->datagrid->addItem($object);
- }
- $total = 'R$ '.number_format($total, 2, ',', '.');
- $this->labelTotal->setValue('<font color = blue><b><h3>'.$total.'</h3></b></font>');
- ?>
No intuito de obter o resultado pretendido utilizei o exemplo do Nataniel, inserindo na
na model: AdmRequisita
- <?php
- public static function getSum($crit=null)
- {
- $sql = new TSqlSelect;
- $sql->addColumn("sum(vl_repasse)");
- $sql->setEntity(self::TABLENAME);
- // assign the criteria to the SELECT statement
- $sql->setCriteria($crit);
- $conn = TTransaction::get();
- $result= $conn-> query($sql->getInstruction());
- if ($result)
- {
- $row = $result->fetch();
- }
- // returns the result
- return $row[0];
- }
- ?>
E na página dentro do onReload
- <?php
- $sumSaldo = $model->getSum($criteria);
- $this->labelTotal->setValue($sumSaldo);
- ?>
Obtenho essa informação:
Notice: Undefined variable: model in C:Program FilesVertrigoServwwwcrcappcontroladmAdmRequisitaList.class.php on line 331
Fatal error: Call to a member function getSum() on a non-object in C:Program FilesVertrigoServwwwcrcappcontroladmAdmRequisitaList.class.php on line 331
Qual a melhor maneira para obter o resultado pretendido?
No lugar de "$model" você deve informar o nome do modelo onde você criou a função getSum.
Bom dia Nataniel, muito obrigado, agora clareou a situação, todavia está trazendo o valor total do banco e está ignorando o filtro do onsearch com a seguinte msg:
SQLSTATE[42803]: Grouping error: 7 ERROR: column "adm_requisita.id" must appear in the GROUP BY clause or be used in an aggregate function LINE 1: ...isita WHERE (dt_repasse >= '2017-06-25') ORDER BY id asc LIM... ^.
Existe algum exemplo que eu possa seguir?
preciso do valor total das paginações obtidas no filtro.
O problema é que está sendo passada uma ordenação para o criteria e com isso dá erro no banco de dados. Chame a função resetProperties no criteria:
Excelente Nataniel, resultado esperado com a sua ajuda, muito obrigado!
Pessoal,
tentei repetir esse mesmo exemplo que vocês fizeram, mas estou encontrando um pouco de dificuldade.
1) Alterei a Model
Chamadas a funções static devem ser feitas através do nome da classe, sem o $: