PDA

Ver la Versión Completa : Imprimir usando filtros diferentes


Marwuinh
23-10-2008, 18:09:25
Saludos a todos, me Explico:

Tengo una aplicacion en la cual al introducir el numero de cedula de una persona, se muestra en tres componentes LABEL, el nombre, direccion y telefono de esa persona, dicha informacion guardada en una Tabla1 dBASE IV y se accede mediante un DATASOURSE y un TTABLE.

Bien al mismo tiempo en un DBGRID se muestra una lista de diez personas familiares a esta persona, y esta informacion esta en otra tabla2 que tienen un campo en comun con la anterior que es la Cedula que introduci.

Ej1: Bien si yo introduzco la cedula de Pedro (por ejemplo) me aparecen sus datos en label's y diez familiares de pedro en un DBGRid, esta informacion la imprimo manualmente y funciona.

La pregunta es: Si yo quiero que al oprimir un boton se imprima una hoja con la informacion correspondinete a pedro, otra hoja con la informacion correspondiente a jesus (otro que tiene diez amigos) y asi sucesivamente se impriman todas las personas de la Tabla1 con sus diez amigos y en diferentes hojas sin tener que ahcerlo manualmente. Alguien conoce una forma?

BlueSteel
23-10-2008, 18:53:16
Hola Marwuinh

lo que tienes que realizar es un reporte Maestro - Detalle..

Que reporteador estas usando ??? y que versión de Delphi ???

En QReport es sencillo de realizar...y necesitas poner la banda Detail (que corresponderá a la información de la persona en cuestion) y una banda sub-detail (que corresponderá a la información de los familiares y/o amigos de la persona identificada... y eso lo repetirá por toda la tabla...

Trata de entregar más información sobre reporteador y vemos como te vamos ayudando

Salu2:p:D

Marwuinh
23-10-2008, 20:32:11
utilizo QReport 3.0 y delphi 5

Marwuinh
23-10-2008, 21:03:53
Resulta que al colocar la cedula deseada aparece la informacion que deseo en los Edit's y en el DBGRID, entonces hice lo siguiente:

Al presionar el boton para "imprimir todos" la tabla1 la coloco en la fila

numero 1 con tTabla1.Firts,

luego hago un While para que recorra toda la tabla,

de cada linea tomo la Cedula que necesito y la Introduzco en el componente EDIT destinado para ello. esto hace que los edit's y el DBGRID se llenen con la informacion.

Justo en ese momento mando el comando print


tTabla1.First;
while not tTabla1.Eof do
begin
Reporte.Reporte1.Print;
tTabla1.Next;
end


Asi me funcion, ahora no se si cuando la tabla tenga muchos registros genere problemas de memoria con la impresora.

Marwuinh
23-10-2008, 21:10:04
tTabla1.First;
while not tTabla1.Eof do
begin
Cedula.Text:=tTabla1.FieldByName('Cedula').AsString;//faltaba esta linea
Reporte.Reporte1.Print;
tTabla1.Next;
end