Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   SQL y QuickReport (https://www.clubdelphi.com/foros/showthread.php?t=19375)

el_enigma1 12-03-2005 01:19:05

SQL y QuickReport
 
Hola!

Quiero imprimir un reporte donde esten agrupados articulos por familias y subfamilias, lo he intenetado de diferentes maneras pero aun no le doy.
Se trata de que el reporte imprima como primera linea la familia, la segunda linea la subfamilia y luego los articulos que coincidan con la familia y subfamilia, claro este reporte debe imprimir todas las familias asi como sus repectivas subfamilia y articulos.

ejeplo

familia : Articulos Escolares
subfamilia : Pegamentos
pega mas
megapega
pega pega

subfamilia : reglas y juegos de geometria
regla escuadra
regla T

familia : Libretas
subfamilia : Prefesional
libreta 100 hojas
libreta 200 hojas


Intente primero seleccionando todos los articulos

Código SQL [-]
 select A.Descripcion, F.Descripcion, IDFamilia, SB.Descripcion IDSubfamilia
  from Tarticulo A, TFamilia F, TSubfamilia SB where A.IDFamilia = F.IDFamilia
  and A.IDSubfamilia = SB.IDSubfamilia order by F.Descripcion,
  SF.Descripcion;

Y esto me devuelve a los articulos en orden de la familia y subfamilia, pero en el quickreport no se como o donde puedo separarlo, o si necesito hacer otros querys, ya que solo me despliega una vez la familia y nada mas.

La otra idea era seleccionar las familias, luego las subfamilia y para terminar los articulos que concidan con los id correspondientes, pero aqui es donde no se como hacer para que las etiquetas tomen los valores correspondiente.

Espero haber sido claro, uso delphi 5 e intebase 6.
De antemano gracias por la ayuda.

noir 12-03-2005 01:27:41

Hola ....... puedes intentar hacer dos consultas ........ la primera con la familia raiz y la segunda seleccionando el resto de la información teniendo como parametro la clave del articulo de la primera consulta .......... en el reporte pones en el master data los resultados de la primera consulta y en el detail data los de la segunda ........ eso me funciona a mi ..........

el_enigma1 12-03-2005 03:33:54

El mismo tema
 
Cita:

Empezado por noir
Hola ....... puedes intentar hacer dos consultas ........ la primera con la familia raiz y la segunda seleccionando el resto de la información teniendo como parametro la clave del articulo de la primera consulta .......... en el reporte pones en el master data los resultados de la primera consulta y en el detail data los de la segunda ........ eso me funciona a mi ..........

Ok, mas omenos eso pense, pero exactamente como?

seria
query1
Código SQL [-]
  select A.IDAritculo, F.Descripcion, IDFamilia
   from TFamilia F, TSubfamilia SB , TArticulo A where A.IDFamilia = F.IDFamilia
   and A.IDSubfamilia = SB.IDSubfamilia order by F.Descripcion,
   SF.Descripcion;

query2
Código SQL [-]
 
 select *  from Articulo where IDArticulo = (:IDArticuloQueBieneDeArriba)
   order by Descripcion;


y en reporte

QuickReport.DataSet := Query1;

en la banda Details

EtiquetaDetails.FieldByName := Query2.Descripcion;

Una duda, en donde se despliega la familia? ya que no me quedo
del todo claro, y en donde o como llamo al query2?, ya que si lo hago
con un valor fijo si lo hace pero yo quiero que sea para todas las familias

me imagino que usaria como un while para recorrer el primer query, bueno como
dije me imagino a lo mejor estoy equivocado.
Muchas gracias por la info y voy a tratar de hacerlo con lo que me digiste.

jlmelida 12-03-2005 20:14:10

Cita:

Empezado por el_enigma1
Ok, mas omenos eso pense, pero exactamente como?

seria
query1
Código SQL [-]
select A.IDAritculo, F.Descripcion, IDFamilia
from TFamilia F, TSubfamilia SB , TArticulo A where A.IDFamilia = F.IDFamilia
and A.IDSubfamilia = SB.IDSubfamilia order by F.Descripcion,
SF.Descripcion;

query2
Código SQL [-]
 
select * from Articulo where IDArticulo = (:IDArticuloQueBieneDeArriba)
order by Descripcion;


y en reporte

QuickReport.DataSet := Query1;

en la banda Details

EtiquetaDetails.FieldByName := Query2.Descripcion;

Una duda, en donde se despliega la familia? ya que no me quedo
del todo claro, y en donde o como llamo al query2?, ya que si lo hago
con un valor fijo si lo hace pero yo quiero que sea para todas las familias

me imagino que usaria como un while para recorrer el primer query, bueno como
dije me imagino a lo mejor estoy equivocado.
Muchas gracias por la info y voy a tratar de hacerlo con lo que me digiste.

También puedes intentar hacer las cosas mas sencillas:

Una banda detalle, en donde pones la tabla o query maestra, una subdetalle en donde pones la tabla o query detalle. Le añades bandas hijas según tus necesidades.
Colocas un TQRGroup y le dices que cambie cuando cambie la familia.

Veras como todo sale bién.

Leete los ejemplos que vienen con Qreport. Esta lo que buscas. Suerte


La franja horaria es GMT +2. Ahora son las 03:56:08.

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