Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Imprimir usando filtros diferentes (https://www.clubdelphi.com/foros/showthread.php?t=61058)

Marwuinh 23-10-2008 18:09:25

Imprimir usando filtros diferentes
 
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

Gracias
 
utilizo QReport 3.0 y delphi 5

Marwuinh 23-10-2008 21:03:53

Asi lo ice
 
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

Código Delphi [-]
    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

Correccion del codigo anterior
 
Código Delphi [-]
tTabla1.First;
    while not tTabla1.Eof do
    begin
      Cedula.Text:=tTabla1.FieldByName('Cedula').AsString;//faltaba esta linea
      Reporte.Reporte1.Print;
      tTabla1.Next;
    end


La franja horaria es GMT +2. Ahora son las 05:53:36.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi