Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   quickreport con query en ejecucion (https://www.clubdelphi.com/foros/showthread.php?t=49146)

lejia 14-10-2007 18:07:14

quickreport con query en ejecucion
 
Ahora tengo otro problema,
Resulta que estoy leyendo manuale sy manuales, y nada..
A ver, yo hago en un query una consulta asi..(en tiempo de ejecucion) tengo varias tablas en la consulta, como la tabla cliente, la tabla articulo, y la tabla familia (donde esta el codigo,nombre,etcc..)

codigo articulo,nombre, precioeuros, familia..
pues bien, en la consulta sql que es en tiempo de ejecucion. Donde estan ordenados todos los articulos por familia (y dentro de ellos por nombre de arituclo), es decir, primero los de codigo 1,despues los de codigo 2, etc.. Pues bien, en el beforeprint del qreport, coloco un subdetail con 2 campos qrdbtext, uno para el articulo y otro para el nombre, pero pongo otro campo detail, de familia, y me sale por cada aticulo su familia.. yo quiero que ponga la familia tal (conservas) y debajo me salgan todos los articulos pertenicientes a el.. como puedo pasar eso al informe,?..
Gracias por la ayuda.

Lepe 15-10-2007 01:59:22

Hace tiempo que no uso QuickReport, pero tienes que agrupar los datos en la consulta sql con "group by familia"

Después (y esto es lo que no recuerdo bien) tienes que añadir un QRBand y especificar que es de grupo, añadiendo ahí el campo "familia"

Saludos

lejia 15-10-2007 21:35:12

No encuentro la manera, necesito ayuda, si tengo en la consulta sql el group by, pero no me funciona, gracias.Alguna ayudita por favor.:mad:

lejia 15-10-2007 22:42:19

Miento, lo tengo echo con un order by, me salen todos los prodcutos y su familia, y quiero en el report, que me salgan ordenados por familia, y sus productos..

mi consulta sql es la siguiente, a ver si la tengo que cambiar:
//SELECT DISTINCT art.num,art.nombre,des.pree,des.prep,des.porcen,art.fam from art,des,fam where (art.NUM=des.ART) and (des.CLI=9)
//order by art.fam,art.nombre;

Lepe 16-10-2007 12:16:25

Pues me parece que no necesitas agrupar. Creo recordar que se usaba un QRBandGroup con un qrdbtext enlazado al campo familia y con eso era suficiente.

Esperemos que alguien usando QuickReport lo confirme.

Código SQL [-]
SELECT DISTINCT art.num,art.nombre,des.pree,des.prep,des.porcen,art.fam 
from art,des,fam where (art.NUM=des.ART) and (des.CLI=9)
order by art.fam,art.nombre;

Saludos

lejia 16-10-2007 13:07:25

no, lo siento pero no es suficiente..
no se que estoy haciendo mal, pero necesito ayuda.
Gracias.
No se si poner la consulta con un order by, o con un group by, pero con order me funciona bien la consulta, pero no logro hacer el qreport, bien, primero el campo familia, y todos sus productos, y asi sucesivamente. TEngo manuales, pero ayudan.

Ivanzinho 16-10-2007 15:42:59

1.- Tienes que hacer la consulta ordenada por familia.
2.- En el TQuickRep agregas una banda TQRGroup y en la propiedad Expression pones el campo por el que quieres agrupar, en tu caso será algo como Tabla.familia
3.- Añades una banda TQRBand y en la propiedad BandType pones rbDetail.

En la banda TQRGroup en donde va la etiqueta con la familia, en la TQRBand pones los datos de los productos.

Espero que te sirva

Un saúdo.

vivamotos 10-01-2008 10:10:57

No entiendo
 
No entiendo la última parte:

En la banda TQRGroup en donde va la etiqueta con la familia, en la TQRBand pones los datos de los productos.

jcarteagaf 10-01-2008 16:10:20

Reporte por Grupos
 
La banda QRGroup tiene una propiedad Expression ahi colocas el campo(s) por los que quieres que se haga la agrupacion. En tu caso Tabla.Familia, luego puedes colocar unos QRLabels o QRDBLabels para que muestren el nombre o codigo de la familia. Luego en la banda de Detalle colocas los datos de los productos mediante TQRDBtext que apunten a los fields de tu tabla.

Esto te dara un reporte con una estructura similar a:

Familia 1
producto 1
producto 2
producto 3
Familia 2
producto 4
producto 5
...

Puedes colocar tambien una banda de GroupFooter para poder mostrar subtotales por grupo, basta con insertar una banda y cambiar su propiedad BandType a rbGroupFooter luego en la banda de Grupo le asignas la propiedad FooterBand para que apunte a tu nueva banda.

Espero que sirva.

Saludos

vivamotos 11-01-2008 08:19:43

Decidir el número de filas
 
Pero como le digo que me muestre tantas filas de la query por página???

Lepe 11-01-2008 10:45:02

Eso lo hace el QuickReport automáticamente, según las líneas de cada grupo que haya.

Lo normal es hacer un poco más alta la banda rbDetail, o incluso la banda qrGroup, hasta que quepan las líneas que tú quieras.

Saludos

vivamotos 11-01-2008 11:02:19

Solamente una línea
 
El problema que tengo es que solamente me imprime una línea de la query, y yo me gustaría que cogiera todo el ancho del QRDBText hasta el final y si no tiene página nueva, pero no una página nueva por dato.

Como lo hago?

Lepe 11-01-2008 13:01:05

No acabo de entender lo que ocurre.

En principio, revisa todas las bandas, por si alguna tiene la propiedad ForceNewPage en True. Ponla a False.

Si no es eso, explica qué línea es la que imprime, ¿Una de grupo? ¿una linea con el grupo y una sola de detalle?

el informe que has creado en tiempo de diseño ¿ocupa más de la mitad del folio?
Igual tienes poco espacio para el detalle. Ten en cuenta que el alto de la banda detalle se repite por cada registro que haya. Además cuando cambie de familia, se necesita el alto que ocupe la banda qrGroup más el alto de la banda detalle.

Saludos

vivamotos 14-01-2008 22:02:51

Finalmente Manual
 
Al final he optado por hacerlo manualmente como explica la web que encontre. Grácias:

http://www.foroexperiencia.com/viewtopic.php?f=20&t=134


La franja horaria es GMT +2. Ahora son las 07:33:50.

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