Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Impresion con QuickReport 4 (https://www.clubdelphi.com/foros/showthread.php?t=23220)

neftafly 11-07-2005 12:49:17

Impresion con QuickReport 4
 
Necesito ayuda urgente:

Mi problema parece una tonteria pero no se como solucionarlo.
Necesito que mi informe se imprima 2 copias y que imprima 1 primero y despues la segunda. Intento cambiar desde el imforme las propiedades de la impresora pero aunque las cambie los cambios no se aceptan.

Alguien sabria como conseguir que QuickReport imprima primero una copia y despues otra y no las dos a la vez.

Muchas Gracias

marcoszorrilla 11-07-2005 14:46:14

Muestra el código que utilizas, pues es muy probable que no estés enviando las órdenes al objeto qrPrinter sino al Tprinter.

Un Saludo.

neftafly 12-07-2005 11:44:07

No entiendo bien lo que me quieres decir. Yo creo el informe lo previsualizo e intento cambiar a 2 copias intercaladas en las propiedades de la impresora a traves del boton del reporte creado y despues le doy al boton de imprimir que existe en el reporte.


De todas formas mi codigo

procedure TRECIVFORM.QRDBText1Print(sender: TObject; var Value: String);
begin
DataModule2.Table5.IndexName:= 'DNI';
if not DataModule2.Table5.Findkey([Query1.FieldByName('NIF_PROP1').Value]) then ShowMessage('No encuentro el Nif del propietario');
IF Query1.FieldByName('TIPO').Value = 'V' then
begin
QuickRep1.PrinterSettings.Copies:=1;
QRLabel1.Caption:= ' ';
QRLabel7.Caption:= 'arrendatario de la expresada vivienda';
QRLabel3.Caption:= 'Vivienda:';
QRLabel8.Caption:= 'la cantidad de:';
QRLabel28.Caption:= ' ';
QRLabel6.Caption:= QRLabel25.Caption;
end;
if Query1.FieldByName('TIPO').value = 'T' then
begin
QuickRep1.PrinterSettings.Copies:=1;
QRLabel1.Caption:= ' ';
QRLabel7.Caption:= 'arrendatario del expresado trastero';
QRLabel3.Caption:= 'Trastero:';
QRLabel8.Caption:= 'la cantidad de:';
QRLabel28.Caption:= ' ';
QRLabel6.Caption:= QRLabel25.Caption;
end;
if Query1.FieldByName('TIPO').Value = 'L' then
begin
QuickRep1.PrinterSettings.Copies:=2;
QRLabel1.Caption:= 'Recibo Núm: ';
QRLabel7.Caption:= 'arrendatario del expresado local';
QRLabel3.Caption:= 'Local:';
QRLabel8.Caption:= 'la cantidad de:';
QRLabel6.Caption:= QRLabel25.Caption;
QRLabel28.Caption:= Form24.DBEdit1.Text;
Form24.DBEdit1.Text:=IntToStr((StrToInt(Form24.DBEdit1.Text)+1));
//DataModule2.Table3.edit;
//DataModule2.Table3.FieldByName('ULTRECIV').AsInteger:= StrToInt(Form24.DBEdit1.Text);
//DataModule2.Table3.post;
//DataModule2.Table3.Refresh;
pai:= pai+1;
end;
MUCHAS GRACIAS POR TU RESPUESTA Y ESPERO QUE NOS ENTENDAMOS

marcoszorrilla 12-07-2005 15:11:17

Sino recuerdo mal, la configuración que le des desde la vista previa no sirve para nada, tienes que utilizar un Dialogo de Impresión y pasarle luego los valores que correspondan al objeto qrprinter, mira este ejemplo:
Código Delphi [-]
  procedure TfrLstFact.lstFacturasBeforePrint(Sender: TCustomQuickRep;
    var PrintReport: Boolean);
  begin
  prnDialog.Execute;
  lstFacturas.PrinterSettings.Printerindex:=Printer.PrinterIndex;

Un Saludo.

yusnerqui 12-07-2005 15:15:08

Hola
 
Cita:

ESPERO QUE NOS ENTENDAMOS
De seguro si usas las etiquetas delphi se entenderán mejor, y por ende obtendrás más ayuda, me he tomado la libertad de transcribir tu código:

Código Delphi [-]
procedure TRECIVFORM.QRDBText1Print(sender: TObject; var Value: String);
begin
  DataModule2.Table5.IndexName:= 'DNI';
  if not DataModule2.Table5.Findkey([Query1.FieldByName ('NIF_PROP1').Value]) then
    ShowMessage('No encuentro el Nif del propietario');
  IF Query1.FieldByName('TIPO').Value = 'V' then
  begin
    QuickRep1.PrinterSettings.Copies:=1;
    QRLabel1.Caption:= ' ';
    QRLabel7.Caption:= 'arrendatario de la expresada vivienda';
    QRLabel3.Caption:= 'Vivienda:';
    QRLabel8.Caption:= 'la cantidad de:';
    QRLabel28.Caption:= ' ';
    QRLabel6.Caption:= QRLabel25.Caption;
  end;
  if Query1.FieldByName('TIPO').value = 'T' then
  begin
    QuickRep1.PrinterSettings.Copies:=1;
    QRLabel1.Caption:= ' ';
    QRLabel7.Caption:= 'arrendatario del expresado trastero';
    QRLabel3.Caption:= 'Trastero:';
    QRLabel8.Caption:= 'la cantidad de:';
    QRLabel28.Caption:= ' ';
    QRLabel6.Caption:= QRLabel25.Caption;
  end;
  if Query1.FieldByName('TIPO').Value = 'L' then
  begin
    QuickRep1.PrinterSettings.Copies:=2;
    QRLabel1.Caption:= 'Recibo Núm: ';
    QRLabel7.Caption:= 'arrendatario del expresado local';
    QRLabel3.Caption:= 'Local:';
    QRLabel8.Caption:= 'la cantidad de:';
    QRLabel6.Caption:= QRLabel25.Caption;
    QRLabel28.Caption:= Form24.DBEdit1.Text;
    Form24.DBEdit1.Text:=IntToStr((StrToInt(Form24.DBEdit1.Text)+1));
    //DataModule2.Table3.edit;
    //DataModule2.Table3.FieldByName('ULTRECIV').AsInteger:= StrToInt(Form24.DBEdit1.Text);
    //DataModule2.Table3.post;
    //DataModule2.Table3.Refresh;
    pai:= pai+1;
  end;
end;

se lee mejor así verdad?

Saludos

neftafly 14-07-2005 13:24:39

RE:Problemas QuickReport
 
Muchas gracias por vuestras respuestas, y lo siento mucho por lo del codigo mal escrito pero no se como ponerlo de colorines directamente. (hay que hacerlo a mano?)
Pues eso lo de PrnDialog no se como hacer que funcione por que el compilador me dice que no funciona.

Gracias de todas formas y que este foro siga asi de cojonudo

yusnerqui 14-07-2005 14:31:53

Hola
 
Cita:

no se como ponerlo de colorines directamente. (hay que hacerlo a mano?)
Pues no, solo usar las Etiquetas vB

Saludos.

marcoszorrilla 14-07-2005 14:51:35

Cita:

PrnDialog
En realidad es un nombre que yo le he dado pero simplemente se trata del diálogo de impresión que viene en Delphi en la paleta Dialogs, en concreto es un TPrintDialog.

Un Saludo.

neftafly 14-07-2005 16:33:38

re:
 
Muchas gracias por la informacion

Ya he usado el PrintDialog que es como se llama en mi delphi pero sigue sin hacerle caso configuro la impresion pero despues hace lo que quiere al imprimir.

No se lo que voy a hacer ya. Creo que voy a tener que obtar por imprimir 2 veces en vez de darle que imprima dos copias.

Muchas gracias por todo;

marcoszorrilla 14-07-2005 17:57:45

Pues si ves que no responde, puedes hacer un bucle For...Next y ejecutar el informe x veces, en tu caso 2.

Un Saludo.


La franja horaria es GMT +2. Ahora son las 21:02:22.

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