Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-06-2007
[David] David is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Málaga
Posts: 417
Poder: 21
David Va por buen camino
Smile Generar listado con totales en QuickReport

Hola

Tengo dos tablas , una obras y otras facturas .Estoy con TIBQuerys que enlazo con CDClientDataSet

La tabla obra tiene como campos de importancia :

Codigo
Decripción
Cliente

y Facturas

importe
CodObra ( que corresponde a la obra en cuestión)

Cada Obra tiene varias facturas .

Quiero hacer lo siguiente , sacar en un informe las caracteristicas de una obra con la suma total de las facturas de la misma.

Seria

Codigo (de la obra) descripción , SumatodasfacturasdelaObra

El caso es que si pongo un campo calculado , no sé como se haria , puesto que para cada obra hay varias facturas .

He intentado lo siguiente , pero no ha salido . En la Query de Obras hago la selección y le asigno un ClientDataSet (ClientObras) , luego en el Query de Facturas (QFacturas) hago un sum(importe),CoObra from facturas group by
CodObra having CodObra = : CodObra , luego en el clientDataSet de Facturas (ClientFacturas) he hecho una relación maestro detalle con el ClientDataSet de Obras , por el campo CodObra = Codigo .

El caso es que esto no vale , por que no veo la manera de poner un campo en ClientObras , para que saque el importe total de las facturas correspondiente a dicha obra .

Un saludo
Responder Con Cita
  #2  
Antiguo 07-06-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Hola David.
El tema de los títulos para los hilos es un tema recurrrente en los foros. Hasta cierto punto es normal que los "novatos" comentan este error, pero en alguien con 235 mensajes me parece bastante más grave.

Por favor intenta colocar a los hilos títulos descriptivos, que faciliten búsquedas posteriores; el que has puesto en éste hilo o en este otro son totalmente inútiles.

Revisar la Guía de estilo (1 y 2) y el uso de los TAG's tampoco te vendría mal...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 07-06-2007
[David] David is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Málaga
Posts: 417
Poder: 21
David Va por buen camino
Ya es que no sabia como titular el post . Tengo la idea de que hacer pero no sé exactamente como titularlo . Estoy en blanco . Seria por ejemplo , interesante , que a medida que surgan respuestas , al final surga el título y se pueda cambiar.
Responder Con Cita
  #4  
Antiguo 07-06-2007
Avatar de linuz
linuz linuz is offline
Miembro
 
Registrado: sep 2004
Posts: 88
Poder: 20
linuz Va por buen camino
Hola David,

Mira a ver si te sirve lo siguiente:

Código SQL [-]
select sum(F.importe) TOTAL_FACTURAS, f.* , O.* from facturas F
left join obras O on (F.CodObra = O.Codigo)
where O.Cliente = :cliente



De todas formas podrías detallar más sobre lo que quieres.


Un saludo.

Última edición por linuz fecha: 07-06-2007 a las 13:52:05.
Responder Con Cita
  #5  
Antiguo 07-06-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Yo creo que no es tan complicado.
No se trata de explicar el problema entero en el título, sino dar una orientación de por dónde puede ir.
Eso también ayuda a quien revisa los hilos. Si en el título aparece "Cómo instalar MySQL" y yo no tengo ni idea de MySQL o no me interesa, pues ya no entro (por poner un ejemplo).

Segun lo que dices:
Cita:
... Quiero hacer lo siguiente , sacar en un informe las caracteristicas de una obra con la suma total de las facturas de la misma.
No creo que sea muy complicado titularlo: "Generar listado con totales en QuickReport",... (por ejemplo).

El tema de ir cambiando el título no me parece buena idea, por prácticos (habrá quien se olvide de cambiarlo) y por temas técnicos (página principal de índice, RSS,...). Creo que es darle vueltas a algo que no la tiene. Es sencillo, pon un título con sentido, otra cosa es que luego aciertes más o menos, pero al menos haz el esfuerzo de intentarlo.

Un saludo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 07-06-2007
[David] David is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Málaga
Posts: 417
Poder: 21
David Va por buen camino
El caso es que ahora no sé como cambiar el título .

Cita:
Empezado por linuz
Código Delphi [-]
select sum(F.importe) TOTAL_FACTURAS, f.* , O.* from facturas F
left join obras O on (F.CodObra = O.Codigo)
where O.Cliente = :cliente
Este código no funciona , estoy con firebird y esta sentencia no es correcta.

Detallo , más lo que quiero , quiero sacar en la tabla de obras un campo , con el total de las facturas ligadas a dicha obra .El campo obviamente seria calculado .

CampoCalculado = SumaImporteFacturas
Responder Con Cita
  #7  
Antiguo 07-06-2007
santi33a santi33a is offline
Miembro
 
Registrado: jun 2005
Posts: 208
Poder: 19
santi33a Va por buen camino
Prueba así mejor:
Código SQL [-]
select codigo,descripcion,sum(importe) total
 from Obras o inner join
        Facturas f on o.codigo = f.codigo
group by codigo,descripcion
Responder Con Cita
  #8  
Antiguo 07-06-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por David
El caso es que ahora no sé como cambiar el título.
Ya lo he cambiado yo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #9  
Antiguo 07-06-2007
Avatar de linuz
linuz linuz is offline
Miembro
 
Registrado: sep 2004
Posts: 88
Poder: 20
linuz Va por buen camino
Cita:
Originalmente Escrito por linuz
Código Delphi [-]select sum(F.importe) TOTAL_FACTURAS, f.* , O.* from facturas Fleft join obras O on (F.CodObra = O.Codigo)where O.Cliente = :cliente




Este código no funciona , estoy con firebird y esta sentencia no es correcta.
¿Que error te ha producido?
Responder Con Cita
  #10  
Antiguo 07-06-2007
Avatar de linuz
linuz linuz is offline
Miembro
 
Registrado: sep 2004
Posts: 88
Poder: 20
linuz Va por buen camino
Me respondo a mi mismo, jeje

Me he olvidado de un detalle....

Código SQL [-]
select sum(F.importe) TOTAL_FACTURAS, O.Codigo, O.Descripcion
 from facturas F left join obras O on (F.Codobra = O.Codigo)
 where O.Cliente = 1
 Group by O.Codigo, O.descripcion

Perdón....

Un saludo
Responder Con Cita
  #11  
Antiguo 08-06-2007
[David] David is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Málaga
Posts: 417
Poder: 21
David Va por buen camino
Hola

Ya casi tengo resuelto el problema , la verdad es que no es cuestión de poner una u otra sentencia que se me da bien , el caso era poner un campo agregado en el ClientDataSet ClientFactura, con el campo ClientObras , luego es importante crear un indice por el campo cliente , para filtrar , poner la propiedad indexname , cliente y grouplevel a 1 .

Y en expresion poner SUM(IMPORTE) , y ya esta , hay dos tablas que funcionan como maestro-detalle , y en el detalle , calcula la suma de todas las facturas de una obra determinada .

El titulo del post deberia de ser : Campos agregados en ClientDataSet.

Sólo hay un problema , y es que los valores los devuelve o bien en tipo variant o bien en tipo string , esto vale , se puede solucionar , pero lo que quiero es que cuando devuelva un nullo o un string vacio '' , pues que devuelva un valor por defecto , en este caso seria un 0 .

¿Alguien sabe como hacer para que un campo nullo en un campo agregado creado en un TClientDataSet , tenga el valor 0 por defecto ?

Ayer estuve todo el día liado con esto , al final me ayudo ver las últimas 2 hojas del capítulo 20 del libro la cara oculta de Delphi 6.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
QuickReport, 4 copias de un listado con distintos pies Jose Manuel Impresión 4 20-11-2006 18:58:48
Quickreport y totales al final de la impresion LucianoRey Impresión 6 25-08-2005 17:29:57
generar listado de horas acrophet Varios 3 10-06-2004 17:04:50
Generar reporte en QReport para obtener totales Obdulia Pérez Impresión 4 04-03-2004 17:53:52
Totales Qrgroup en QuickReport JANDREGUE Impresión 2 22-09-2003 19:39:45


La franja horaria es GMT +2. Ahora son las 17:49:34.


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
Copyright 1996-2007 Club Delphi