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 21-02-2004
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Poder: 21
mlara Va por buen camino
Configurando tamaño de papel en QR.

Hola foro.

Mis reportes diseñados en QR tienen tamaño de papel por defecto (QReport.Page.PageSize := 'Default'). Esto quiere decir que: Si el usuario configura tamaño oficio, pues el reporte se imprime en oficio. Si el usuario selecciona carta, el reporte se imprime en carta.

Problema:

Previsualizo el reporte en carta o en oficio. Presiono el botón 'Printer Setup'. Cambio el tamaño de hoja de la impresora actual. Doy click en Aceptar y no pasa nada. Es como si el tamaño no se hubiese cambiado.

Intenté hacer lo siguiente:

1. Usar un componente TPrinterSetupDialog para configurar el tamaño del papel antes crear el reporte.

Código:
if PrinterSetupDialog.Execute then
  // Crea reporte y lo previsualiza
2. Usar un componente TPrinterSetupDialog para configurar el tamaño del papel después de crear el reporte y antes de previsualizarlo.

Código:
// Primero crea reporte
if PrinterSetupDialog.Execute then
  // Previsualiza reporte
3. Ejecutar el método PrinterSetup del QuickReport antes de previsualizar el reporte.

Código:
QuickRep1.Tag := 0;
QuickRep1.PrinterSetup;
if QuickRep1.Tag = 0 Then
  QuickRep1.Preview;
También...

Código:
QuickRep1.Tag := 0;
QuickRep1.PrinterSetup;
if QuickRep1.Tag = 0 Then begin
  QuickRep1.ResetPageFooterSize;
  QuickRep1.Preview;
end;
No funciona nada. La única forma de cambiar el tamaño del papel es configurándola en el sistema (por el menú Inicio).

Se supone que si yo cambio el tamaño del papel cuando tengo la previsualización en pantalla (con el botón 'Printer Setup') debo reconstruir el reporte? Si es así cómo lo hago? No olvidar que lo que se necesita es cambiar el tamaño del papel sin necesidad de ir por el menú Inicio.

Gracias.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
Responder Con Cita
  #2  
Antiguo 31-05-2004
Ivan JR Ivan JR is offline
Registrado
 
Registrado: may 2004
Posts: 9
Poder: 0
Ivan JR Va por buen camino
Pues en mi caso casí nunca cambiamos los tamaños de los reportes.. pues siempre se tienen un tamaña especifico para cada reporte.. pero tal vez te sirva esta pequeña rutina donde se configuran ciertas propiedades la impresora default, podrías poner una pantalla antes de llamar tu reporte donde selecciones el tamaño de papel o variarlo en base a alguna variable que indique a que tipo de papel va ese reporte.

With Printer do
Begin
Printer.GetPrinter(ADevice,ADriver,APort,DeviceHandle);

if DeviceHandle <> 0 Then
Begin
DevMode := GlobalLock(DeviceHandle);
//GlobalUnlock(DeviceHandle);
end;
with DevMode^ do
begin
dmFields := dmFields or DM_PAPERWIDTH;
//dmPaperSize := DMPAPER_LETTER;
//dmPaperWidth := 1500;
dmPaperWidth := 1500;
dmPaperLength := 1500;
dmPaperSize := DMPAPER_USER;
dmFields := dmFields or DM_PAPERSIZE or DM_PAPERLENGTH or DM_PAPERWIDTH;

end;
GlobalUnlock(DeviceHandle);
Printer.SetPrinter(ADevice, ADriver, APort, DeviceHandle);

end;
Responder Con Cita
  #3  
Antiguo 01-06-2004
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Poder: 21
mlara Va por buen camino
Je je... después de tanto tiempo una respuesta aún te ayuda a resolver tus problemas.

Voy a probar el código a ver qué tal... gracias.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
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


La franja horaria es GMT +2. Ahora son las 20:58:04.


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