Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-03-2005
el_enigma1 el_enigma1 is offline
Miembro
 
Registrado: may 2004
Posts: 57
Poder: 20
el_enigma1 Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 12-03-2005
noir noir is offline
Miembro
 
Registrado: may 2003
Ubicación: Xalapa, Veracruz, Mexico
Posts: 15
Poder: 0
noir Va por buen camino
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 ..........
__________________
Su atento y Seguro Servidor
Responder Con Cita
  #3  
Antiguo 12-03-2005
el_enigma1 el_enigma1 is offline
Miembro
 
Registrado: may 2004
Posts: 57
Poder: 20
el_enigma1 Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 12-03-2005
jlmelida jlmelida is offline
Miembro
 
Registrado: ene 2005
Ubicación: Alicante, España
Posts: 42
Poder: 0
jlmelida Va por buen camino
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
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


La franja horaria es GMT +2. Ahora son las 23:41:46.


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