Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-11-2006
Jose Manuel Jose Manuel is offline
Miembro
 
Registrado: may 2003
Posts: 112
Poder: 22
Jose Manuel Va por buen camino
QuickReport, 4 copias de un listado con distintos pies

Hola estoy trabajando con D6 y QuickReport 3.6.2. Mi problema es que quiero imprimir 4 copias de un formulario de una hoja, pero en cada una de ellas debe cambiar el pie:

Por ejemplo

1º copia label1.caption := 'Ejemplar para el INTERESADO';
2º copia label1.caption := 'Ejemplar para el ESTABLECIMIENTO DE CREDITO A REMITIR ';
3º copia label1.caption := 'Ejemplar para el ESTABLECIMIENTO DE CREDITO';
4º copia label1.caption := 'Ejemplar a CONSERVAR POR LA OFICINA GESTORA';

El usuario previsuliza el listado, y si está conforme pulsa imprimir, entonces la impresora lanza 4 copias.

¿Hay alguna forma de decirle que en cada una de las copias, cambie el texto de un label o debo lanzar 4 veces el listado y previsualizarlo 4 veces?

El proceso sería parecido a cuando se imprime la "declaración de la renta" y cada copia se identifica a quien va dirigida.

Un saludo a todos.
Jose Manuel García
Responder Con Cita
  #2  
Antiguo 19-11-2006
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.235
Poder: 20
ElKurgan Va camino a la fama
Si la etiqueta que quieres cambiar se llama, por ejemplo, qrLabel1, debes hacer lo siguiente:

1.- Añadir la unit "pptypes" en la clausula uses del Informe.
2.- Poner la propiedad PrinterSetup.Collation := True;
3.- Poner la propiedad PrinterSetup.Copies := 4;
4.- Poner la propiedad PassSetting := psTwoPass;
5.- Crear una variable privada (por ejemplo, FCopia) de tipo Integer; en el
evento BeforePrinter la inicializamos a cero.
6.- En el evento OnSTartPage escribimos esta sentencia:
with MiReport do // o como se llame el informe...
If SecondPass and (AbsolutePageNo = 1) then Inc(FCopia);
7.- Finalmente, en el evento OnPrint escribimos lo siguiente:
Código:
  case FCopia of
    1: qrLabel1.Caption := 'Ejemplar para el INTERESADO';
    1: qrLabel1.Caption := 'Ejemplar para el ESTABLECIMIENTO DE CREDITO A REMITIR ';
    1: qrLabel1.Caption := 'Ejemplar para el ESTABLECIMIENTO DE CREDITO';
    1: qrLabel1.Caption :='Ejemplar a CONSERVAR POR LA OFICINA GESTORA';
  end;
Espero que te sirva.
Un saludo;
Responder Con Cita
  #3  
Antiguo 19-11-2006
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.235
Poder: 20
ElKurgan Va camino a la fama
¡ARGH!
Nada de lo dicho antes vale para nada... Me parece que este truco era para
el ReportBuilder y no para el Quick Report...

Pido mil perdones por la metedura de pata
Responder Con Cita
  #4  
Antiguo 20-11-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
En el evento BeforePrint de ese qrLabel, puedes modificarlo a voluntad y cambiar el texto.

Código Delphi [-]
procedure .... Label1BeforePrint(....);

begin
 case label1.tag of:
   0: Text := 'Ejemplar para el INTERESADO';
   1: Text := 'Ejemplar para el ESTABLECIMIENTO DE CREDITO A REMITIR ';
   2: Text := 'Ejemplar para el ESTABLECIMIENTO DE CREDITO';
   3: Text := 'Ejemplar a CONSERVAR POR LA OFICINA GESTORA';
 end;
 label1.tag := label1.tag + 1;

Ignoro como funciona cuando se le da a "imprimir varias copias" igual hace una sola imagen de lo que se va a imprimir y después envía 4 copias de esa imagen. Si funciona así, no te sirve "mi idea", quizás tengas que usar otra cosa, por ejemplo:

Código Delphi [-]
qrListado.PreviewModal;
  for i:= 1 to 4  do
    qrListado.Print; // se envía 4 veces a imprimir.

Edito: Pues no leí el primer mensaje de ElKurgan, pero la idea es la misma en QuickReports.

Saludos y suerte
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 20-11-2006 a las 14:43:22.
Responder Con Cita
  #5  
Antiguo 20-11-2006
Jose Manuel Jose Manuel is offline
Miembro
 
Registrado: may 2003
Posts: 112
Poder: 22
Jose Manuel Va por buen camino
Gracias por las ideas, el proceso funciona bien cuando imprimimos sin visualizar el listado, pero si elegimos visualizar el listado, surgen los siguientes problemas:
1º El usuario puede optar por no imprimir
2º Si pulsa imprimir, sale una copia o las que hayamos seleccionados pero todas iguales,
3º Si despues del Print_autoliq.QR_autoliq.PreviewModal; pongo algo, siempre se ejecutará despues de que el usuario cierre el listado, y tal vez el usuario no lo sepa o se le olvide.

Lo ideal, sería capturar la pulsación de la tecla IMPRIMIR cuando estamos previsualizando este listado, y ejecutarlo como cuando se imprime directamente.

Muchas gracias por vuestra ayuda, veré si soy capaz de hacer esto

Un saludo a todos
Jose Manuel


Código Delphi [-]
    mensaje:='Quieres pre-visualizar el listado antes de imprimirlo (SN)';
    Button := Application.MessageBox(pChar(mensaje), 'Seleccionar opción', MB_YESNOCANCEL +
    mb_DefButton1);

    if Button = IDYES  then
       begin
       Print_autoliq.QR_autoliq.PreviewModal;
       // Si pulsamos IMPRIMIR, Deberiamos capturar la llamada y
       // ejecutarla como cuando se imprime directamente.
       end;

    if Button = IDNO   then // no previsualiza e imprime directamente
    begin
       case impr_liq_copias.itemindex of
    -1,0: begin {en el combobox se ha selecionado todas las copias}
          nCopias:=4;
          Print_autoliq.QR_autoliq.QRLabelEjemplar.tag := 0;
          end;
       1: begin {en el combobox se ha selecionado la 1º copia}
          nCopias:=1;
          Print_autoliq.QR_autoliq.QRLabelEjemplar.tag := 0;
          end;
       2: begin {en el combobox se ha selecionado la 2º copia}
          nCopias:=1;
          Print_autoliq.QR_autoliq.QRLabelEjemplar.tag := 1;
          end;
       3: begin {en el combobox se ha selecionado la 3º copia}
          nCopias:=1;
          Print_autoliq.QR_autoliq.QRLabelEjemplar.tag := 2;
          end;
       4: begin {en el combobox se ha selecionado la 4º copia}
          nCopias:=1;
          Print_autoliq.QR_autoliq.QRLabelEjemplar.tag := 3;
          end;
       end;
       for i:= 1 to nCopias  do
       begin
        case Print_autoliq.QR_autoliq.QRLabelEjemplar.tag of
        0: Print_autoliq.QR_autoliq.QRLabelEjemplar.caption := 'Ejemplar para el INTERESADO';
        1: Print_autoliq.QR_autoliq.QRLabelEjemplar.caption := 'Ejemplar para el ESTABLECIMIENTO DE CREDITO A REMITIR ';
        2: Print_autoliq.QR_autoliq.QRLabelEjemplar.caption := 'Ejemplar para el ESTABLECIMIENTO DE CREDITO';
        3: Print_autoliq.QR_autoliq.QRLabelEjemplar.caption := 'Ejemplar a CONSERVAR POR LA OFICINA GESTORA';
        end;
       Print_autoliq.QR_autoliq.QRLabelEjemplar.tag := Print_autoliq.QR_autoliq.QRLabelEjemplar.tag + 1;
       Print_autoliq.QR_autoliq.Print; // se imprime el nº de copias seleccionado.
      end;
    end;
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
copias de seguirdad MiGuEJeReZ MySQL 1 02-10-2006 16:40:11
Alguien me Explica de pies a cabeza las INDY juliopag1 Internet 6 28-04-2005 22:57:11
Copias de Seguridad noa C++ Builder 1 25-02-2004 17:52:27
Iconos distintos en distintos escritorios. abel Linux 2 16-02-2004 14:55:35
copias de seguridad Irina Varios 1 09-06-2003 15:06:41


La franja horaria es GMT +2. Ahora son las 14:20:35.


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