Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Average, Sum ... de un DBGrig???? (https://www.clubdelphi.com/foros/showthread.php?t=2019)

Cabanyaler 05-07-2003 21:04:24

Average, Sum ... de un DBGrig????
 
Hola amigos, una pregunta sencilla y supongo que la otra también.
1ª) Pregunta
En el QReport existen unos campos que son Average y Sum, los cuales redunda si explico que hacen.
Busco algún componente que me haga esto mismo pero para un DBGrid.
Está claro que podría realizar un recorrido de todas las tuplas representadas en dicho grid y calcularlo, pero eso me llevaría mucho tiempo si lo quisiera tener actualizado en tiempo real.
¿Existe algo que me haga dicho trabajo sin tener que programarlo yo de la manera que me imagino guardando los valores antes justo de editar los existentes en la celda donde me encuentro, y recalculando sobre ya la media o suma contando con el nuevo valor introducido?
2ª) Pregunta
¿Como puedo imprimir mediante un QREport un informe el cual no este vinculado a ningún DataSet???

Gracias a todos.:p

marcoszorrilla 06-07-2003 12:06:18

A la primera pregunta, no creo que te lleve mucho tiempo.

Desactivas los controles visuales.
Código:

MiDataModulo.MiTablaOQuery.DisableControls;
Y luego recorres los registros, a la vez que los acumulas en una variable, en otra los cuentas.

Al final tendrás en una variable el total (Sum) y en otra el número Total/Número ya tienes la media.

Activas los controles otra vez y ya está.

Otra solución puede ser utilizando SQL.

Yo no buscaría un componenete para una cosa tan simple.

La segunda, mírate el ejemplo que tienes en la carpeta demos de QuicReport "On NeedData":

Un Saludo.

Cabanyaler 07-07-2003 09:56:58

Gracias.;)

guillotmarc 07-07-2003 11:00:24

Hola.

Mírate el tercer ejemplo en este truco de Marteens : http://www.marteens.com/trick44.htm. Aunque personalmente utilizo clientdatasets, donde puedes definir campos de agregado (són la suma de otros campos, ...).

Añade un TDataSetProvider y enlázalo con el TADOQuery, y finalmente añade un TClientDataSet enlazado al Provider. Ahora en los campos puedes añadir uno de tipo nuevo, que són los Aggregate.

Saludos.

Cabanyaler 09-07-2003 09:34:03

Gracias Marc, pero ¿serías tan amable de decirme cual es el titulo del truco?, ya que el 44 corresponde al dibujo de líneas con el Canvas, y demás, y el resto de trucos no veo que tengan que ver con esto. Porque... ¿No será lo de los ejemplos y la clase TPrinter, no??.
Si puedes...., ya que de algún modo un tanto "rustico" lo tengo solucionado ya.
Gracias. :)

guillotmarc 09-07-2003 11:01:01

Hola.

Tiene la numeración de las páginas en hexadecimal, corresponde al truco 68 (aunque no entiendo porqué no funciona el enlace)

Saludos.


La franja horaria es GMT +2. Ahora son las 04:22:38.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi