Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-12-2010
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
En el peor de los casos, puedes probar a duplicar la impresora, es decir instalar en el sistema la misma con otro nombre, darle a esta Nueva_Y_Duplicada, esas propiedades y luego símplemente elegirla a la hora de imprimir.

Me alegro que hayas dejado de fumar.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #2  
Antiguo 20-12-2010
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola Lepe de nuevo,
una vez me pelee tambien con este tema. Creo que lo solucione asignando QRPreview.Printer = printer.ItemIndex, QRReport.Printer := printer.ItemIndex, poniendo el papel manualmente tambien a las dos printers, y despues usar ApplySettings tambien en las dos printers. No recuerdo bien bien como iba, lo siento , pero fue un mareo usando estas tres cosas (el orden en que lo asignabas, por ejemplo, afectaba) Si encuentro el codigo fuente lo pongo (ahora uso freereports de fastreports). Al final con paciencia y probando lo consegui. Suerte!
Responder Con Cita
  #3  
Antiguo 20-12-2010
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Lo encontre! te lo dejo tal cual. Era un form que hacia de preview con las opciones de canviar tamaño y esas cosas. Te lo dejo tal cual por si te sirve algo mas:

Código Delphi [-]

//
//   12/01/09 : repform. Custom preview del quickreport
//
//

unit repform;

interface

uses Windows, Dialogs, Menus, Controls, ExtCtrls, ComCtrls,
  StdCtrls, Classes, Forms, QRPrntr, QuickRpt, db, sysutils, UText,
  FPanel;

type TTipusPreview = (tpPreview,tpPreviewModal);

type THKQRPreview = class(TQRPreview);
type THKPreviewImage = class(TQRPreviewImage);

type TReportForm = class(TForm)
          ppMenu: TPopupMenu;
          saveto: TMenuItem;
          loadfrom: TMenuItem;
          printsetup: TMenuItem;
          print: TMenuItem;
          printtoXLS: TMenuItem;
          SaveDialog: TSaveDialog;
          OpenDialog: TOpenDialog;
          N1: TMenuItem;
          procedure Preview;
          procedure FormResize(Sender: TObject);
          procedure FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);
          procedure pagnavClick(Sender: TObject; Button: TUDBtnType);
          procedure QRPreviewPageAvailable(Sender: TObject; PageNum: Integer);
          procedure lbPrintReact(Sender: TObject);
          procedure Initialize;
          procedure SetDefault;
          procedure FormShow(Sender: TObject);
          procedure QRPreviewEndDrag(Sender, Target: TObject; X, Y: Integer);
          procedure QRPreviewStartDrag(Sender: TObject;var DragObject: TDragObject);
          procedure QRPreviewDragOver(Sender, Source: TObject; X, Y: Integer;
          State: TDragState; var Accept: Boolean);
          procedure QRPreviewMouseWheel(Sender: TObject; Shift: TShiftState;
          WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
          procedure FormClose(Sender: TObject; var Action: TCloseAction);
          procedure lbCopiesReact(Sender: TObject);
          procedure lbPrintToPDFReact(Sender: TObject);
          procedure lbPageReact(Sender: TObject);
          procedure lbZoomToFitReact(Sender: TObject);
          procedure lbZoomToWidthReact(Sender: TObject);
     private
          copies : integer;
          savex,
          savey : integer;
          tipuspreview : TTipusPreview;
          procedure PreparaEstildePagina;
     public
          Report   : TQuickRep;
          constructor Create(AOwner : TComponent); override;
          procedure PreviewModal; overload;
          procedure PreviewModal(r : TQuickRep; d : TDataSet; c : string); overload;
end;

var ReportForm: TReportForm;

implementation

{$R *.DFM}

uses printers, global;

constructor TReportForm.Create(AOwner : TComponent);
begin
     inherited Create(AOwner);

     doublebuffered := true;
     QRPreview.Doublebuffered := true;

     // assignem procedures per moure
     THKPreviewImage(QRPreview.PreviewImage).SetDragMode(dmAutomatic);
     THKPreviewImage(QRPreview.PreviewImage).DragCursor  := crHandPoint;
     THKPreviewImage(QRPreview.PreviewImage).OnStartDrag := QRPreviewStartDrag;
     THKPreviewImage(QRPreview.PreviewImage).OnEndDrag   := QRPreviewEndDrag;
     THKPreviewImage(QRPreview.PreviewImage).OnDragOver  := QRPreviewDragOver;

     // assignem valors per defecte
     SetDefault;
end;

procedure TReportForm.Initialize;
var
     bo : TBookMark;
begin
     // desabilitem controls del dataset
     if Report.DataSet <> nil then
     begin
          Report.DataSet.DisableControls;

          // salvem posicio inicial
          bo := Report.DataSet.GetBookMark;
     end;

     // desassociem el qrpreview
     QRPreview.QRPrinter := nil;

     // s'ha de provar si funciona
     Report.PrinterSettings.Orientation := Report.Page.Orientation;
     Report.PrinterSettings.PaperSize := Report.Page.PaperSize;
     Report.PrinterSettings.Title := Caption;

     // preparem informe
     try       Report.Prepare;
     except    ShowMessage('Papel not supported by printer');
     end;

     // asignem qrpreview a l'impresió del report
     QRPreview.QRPrinter := Report.QRPrinter;
     QRPreview.ZoomToFit;

//     Report.PrinterSettings.ApplySettings(Report.QRPrinter);
//     Report.PrinterSettings.ApplySettings(QRPreview.QRPrinter);

     // s'espera fins que estigui el document preparat
     while QRPreview.QRPrinter.status <> mpFinished do;

     // com que el quickrep fa coses rares, deixem aquesta linea
     if QRPreview.QRPrinter.Status    <> mpFinished then exit;

     // posem numero actual i total de pagina
     lbPag.Caption := Format('%d/%d',[QRPreview.PageNumber,QRPreview.QRPrinter.PageCount]);

     // només visible si si hi han més d'una pagina
     pagnav.Visible := QRPreview.QRPrinter.PageCount > 1;

     // del dataset, tornem al registre inicial
     if Report.DataSet <> nil then
     begin
          try       Report.DataSet.GotoBookMark(bo);
          except    Report.DataSet.First;
          end;

          // alliberem bookmark
          Report.DataSet.FreeBookMark(bo);

          // activem de nou els controls
          Report.DataSet.EnableControls;
     end;
end;

procedure TReportForm.FormResize(Sender: TObject);
begin
     // zoom to fit
     QRPreview.ZoomToFit;
end;

procedure TReportForm.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
     case Key of
     27 :  begin modalresult := mrCancel; close; end;
     end;
end;

procedure TReportForm.pagnavClick(Sender: TObject; Button: TUDBtnType);
begin
     // pasem d'una fulla a una altre
     if Button = btNext then QRPreview.PageNumber := QRPreview.PageNumber + 1
     else                    QRPreview.PageNumber := QRPreview.PageNumber - 1;

     QRPreviewPageAvailable(sender,0);
end;

procedure TReportForm.QRPreviewPageAvailable(Sender: TObject;
  PageNum: Integer);
begin
     // evitem l'excepció del pagecount
     if QRPreview.QRPrinter.Status <> mpFinished then exit;

     // posem nº de fulles
     lbPag.Caption := Format('%d/%d',[QRPreview.PageNumber,QRPreview.QRPrinter.PageCount]);
end;

procedure TReportForm.lbPrintReact(Sender: TObject);
var
     i : integer;
begin
//   Aquesta linea en teoria es necesaria, però sense ella va bé
//     Report.PrinterSettings.ApplySettings(Report.QRPrinter);

     for i := 0 to Copies -1 do
     Report.Print;
end;

procedure TReportForm.FormShow(Sender: TObject);
begin
     Width  := 650;
     Height := 400;

     Initialize;
end;

procedure TReportForm.QRPreviewStartDrag(Sender: TObject;
  var DragObject: TDragObject);
begin
     // guardem posicio
     savex := Mouse.CursorPos.x;
     savey := Mouse.CursorPos.y;
end;

procedure TReportForm.QRPreviewDragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
begin
     // només si inici = QRPreview
     Accept := (Source = QRPreview) or (Source = QRPreview.PreviewImage);
end;

procedure TReportForm.QRPreviewEndDrag(Sender, Target: TObject; X,
  Y: Integer);
begin
     // movem
     QRPreview.PreviewImage.Left := QRPreview.PreviewImage.Left + (Mouse.cursorpos.x-savex);
     QRPreview.PreviewImage.Top  := QRPreview.PreviewImage.Top + (Mouse.CursorPos.y-savey);

     QRPreview.Enabled := true;
end;

procedure TReportForm.SetDefault;
begin
     lbcopies.Caption := 'Còpies (1)';
     Copies := 1;
end;

procedure TReportForm.QRPreviewMouseWheel(Sender: TObject;
  Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint;
  var Handled: Boolean);
begin
     // aquest codi no funciona si num_pagines = 1
     QRPreview.Zoom := QRPreview.Zoom + (WheelDelta div (abs(WheelDelta)))
end;

procedure TReportForm.PreviewModal;
begin
     // preview modal
     tipuspreview := tpPreviewModal;
     ShowModal;
end;

procedure TReportForm.PreviewModal(r : TQuickRep; d : TDataSet; c : string);
begin
     report := r;
     report.DataSet := d;
     Caption := c;

     case Report.Page.PaperSize of
     A4 : lbPage.ItemIndex := 0;
     A5 : lbPage.ItemIndex := 1;
     end;

     PreviewModal;
end;

procedure TReportForm.Preview;
begin
     // preview
     tipusPreview := tpPreview;
     Show;
end;

procedure TReportForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
     // preview s'ha de crear a runtime
     if tipuspreview = tpPreview
     then release;
end;

procedure TReportForm.lbCopiesReact(Sender: TObject);
begin
     Copies := IntegerIn('Còpies',inttostr(copies));
     (sender as TUText).Caption := 'Còpies ('+inttostr(copies) +')';
end;

procedure TReportForm.lbPrintToPDFReact(Sender: TObject);
var
     ant,
     idx : integer;
begin
     // impresió a pdf: escollim Cute PDF com a predeterminada, imprimim, restaurem
     ant := Report.PrinterSettings.PrinterIndex;
     idx := Printer.Printers.IndexOf('CutePDF Writer');
     if idx < 0 then
     MessageDLG('Es necesita tenir instal·lat Cute PDF Writer per a imprimir a .PDF. Es pot trobar a http://www.cutepdf.com',mtError,[mbOk],0)
     else
     begin
          Report.PrinterSettings.PrinterIndex := idx;
          lbPrint.React;
     end;
     Report.PrinterSettings.PrinterIndex := ant;
end;

procedure TReportForm.PreparaEstildePagina;
begin
     case lbPage.ItemIndex of
     0 :  begin
               Report.Page.PaperSize   := A4;
               Report.Page.Orientation := poPortrait;
               Report.PrinterSettings.PaperSize := A4;
               Report.PrinterSettings.Orientation := poPortrait;
          end;
     1 :  begin
               Report.Page.PaperSize   := A5;
               Report.Page.Orientation := poLandscape;
               Report.PrinterSettings.PaperSize := A5;
               Report.PrinterSettings.Orientation := poLandscape;
          end;
     end;

     try    Report.Prepare;
     except ShowMessage('L''impresora no reconeix aquest tipus de paper.');
     end;

     QRPreview.QRPrinter := Report.QRPrinter;
     Report.PrinterSettings.ApplySettings(Report.QRPrinter);
     Report.PrinterSettings.ApplySettings(QRPreview.QRPrinter);
     QRPreview.ZoomToFit;

     pagnav.Visible := QRPreview.QRPrinter.PageCount > 1;
end;

procedure TReportForm.lbPageReact(Sender: TObject);
begin
     PreparaEstildePagina;
end;

procedure TReportForm.lbZoomToFitReact(Sender: TObject);
begin
     QRPreview.ZoomToFit;
end;

procedure TReportForm.lbZoomToWidthReact(Sender: TObject);
begin
     QRPreview.ZoomToWidth;
end;

end.

un saludo y a ver si te sirve.
Responder Con Cita
  #4  
Antiguo 21-12-2010
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Muchas gracias coso, la verdad me tenía mareado varios días antes de preguntar en el foro, ya había buscado en las msdn, foros qusoft, google, además de haber hecho multitud de pruebas.

Me pongo a probarlo ya mismo .

Un saludo a todos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
¡¡¡Ayuda con Impresion en QuickReport!!! onlytk Impresión 8 16-08-2018 21:27:09
Aplicar cambios hechos en Opciones de Carpeta aeff API de Windows 3 16-10-2007 04:42:46
Impresion con QuickReport 4 neftafly Impresión 9 14-07-2005 17:57:45
Impresion con QuickReport rgc Impresión 8 13-07-2005 12:24:14
Cerrar tabla sin aplicar cambios Barriccel Conexión con bases de datos 4 27-01-2004 18:47:51


La franja horaria es GMT +2. Ahora son las 20:19:48.


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
Copyright 1996-2007 Club Delphi