PDA

Ver la Versión Completa : Reporte Master/Detail


panuweb
17-08-2007, 01:11:54
Hola

He realizado un reporte de tipo master / detail como lo esplica en uno de los tutoriales de la página de quick report.

El problema es que, el ejemplo, utiliza el componente Ttable, y no puedo modificar la consulta para restingir los registros devueltos.

La idea es hacerlo con un Query pero no se cómo. Ya probé de varias formas pero no funciona el master/detail.

Si alguien me puede ayudar.

Saludos a todos.

BlueSteel
17-08-2007, 02:09:08
Hola panuweb

primero que nada, podrias indicar en que version de delphi y con que motor de base de datos estan trabajando...


segundo.. dices que tienes algo listo.. podrias indicar como lo hicistes...

yo he realizado unos cuantos master - detail.. y para eso he necesitado usar 2 Query...

1 Query - > Maestro -> Clientes
1 Query -> Detalle -> Pedidos

el QReport debe tener a lo menos 2 bandas

1 banda -> Detail
1 banda -> SubDetail

el Reporte debera estar enlazado al Query 1 -> Clientes

en el evento onActivate de tu informe deberas poner la sentencia de filtrado de tu query...


Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('Select * From Clientes');
Query1.Open


en el evento BeforePrint de la banda SubDetail deberas poner algo así

Query2.Close;
Query2.Sql.Clear;
Query2.Sql.Add('Select * From Pedidos');
Query2.Sql.Add('Where Codigo_Cliente=: Variable_Paso ');
Query2.Params[0].AsString := Query1['Codigo_Cliente'];
Query2.Open;


y con eso deberias tener.. puede que algo no funcione.. pero lo hice de memoria... y tambien depende del motor de base de datos.. (puede que varie un poquito la sentencia sql)

Gabo
17-08-2007, 08:39:30
Gracias por el dato BlueSteel!!!

Yo a las finales me cansé e hice las consultas con los TIBTable en vez de con los TQuery, ya que no supe como realizar el master-detail...

De todas formas, me gustan más las querys, asi que en cuanto tenga tiempo las cambio...

panuweb
19-08-2007, 23:31:46
Gracias BlueSteel

Utilizo delphi 7 y un motor de datos la contrií en acceses pero en este momento no recuerdo el nombre del motor (creo que es algo con ...Jet 4)
y uso componentes de la paleta ADO.

el ejemplo lo saqué de este tutorial

http://www.qusoft.com/getfile.asp?level=0&Filename=QR3TUT.PDF

en el ejemplo utiliza TTable en vez de TQuery

pruebo lo que dices y te cuento.

Saludos

santi33a
20-08-2007, 15:45:54
Hace un tiempo intenté usar Master/Detail pero con Rave, el cual me funcionó, pero un par de detalles que no le encontré solución por lo cual se los planteo a ver que me dicen:
1- ¿ Cómo hacer que la banda Master no me aparezca cuando esta no trae detalles ?
2- Yo uso MS SQL 2000, me fije por el profile de SQL Server que cuando habria el reporte Rave me traia toda la tabla de Detalle al cliente, lo cual no me gusta.