Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   configurando papersize en Fastreport en tiempo de ejecución (https://www.clubdelphi.com/foros/showthread.php?t=52362)

fcios 18-01-2008 15:23:41

configurando papersize en Fastreport en tiempo de ejecución
 
Hola, como puedo setear el papersize antes de llamar al ShowReport ?

por ejemplo lo tengo configurado como Oficio pero al llamar lo quiero colocar en Carta.

muchas gracias

Chris 18-01-2008 15:51:15

Hola fcios, auque no estoy seguro, intenta este código:
Código Delphi [-]
frxReport1.Pages[0].Width  := 21.6;
frxReport1.Pages[0].Height := 27.9;

Las medidas expuestas en el código son para tamaño carta y están expresadas en centimetros, que creo que es lo que utiliza fastreport para asignar las dimenciones a las páginas. En "Pages[0]" corresponde a la primera "página plantilla" del reporte. No confundas "página plantilla" con las páginas con las páginas que se generan al final, ya es estas son parte del objeto PreviewPages.

Saludos.

pd: Si mal no recuerdo, FR tiene una propiedad para especificar en que forma especificas el tamaño de páginas (centimetros, pulgadas, etc). Así como también funciones para convertir entre estas medidas. De todos modos ve y revisa el Developers' Guide de FastReports.

jcarteagaf 18-01-2008 20:32:40

Cambiando el tamaño de la Pagina
 
Aqui esta un codigo que encontre en el Programmer's Manual

Código Delphi [-]
var
  Page:  TfrxReportPage;
 begin
.... 
 { La primera pagina del reporte tiene indice [1]. La pagina [0] es la pagina de Datos. }
 Page :=  TfrxReportPage(frxReport1.Pages[1]);
 { Cambiar el tamaño }
 Page.PaperSize  := DMPAPER_A2;
 { Modificar la orientacion }
 Page.Orientation  := poLandscape;
....
end;
Espero que sirva

Saludos.

Chris 19-01-2008 18:20:19

Cita:

Empezado por jcarteagaf (Mensaje 259261)
Aqui esta un codigo que encontre en el Programmer's Manual


Código Delphi [-]var
Page: TfrxReportPage;
begin
....
{ La primera pagina del reporte tiene indice [1]. La pagina [0] es la pagina de Datos. }
Page := TfrxReportPage(frxReport1.Pages[1]);
{ Cambiar el tamaño }
Page.PaperSize := DMPAPER_A2;
{ Modificar la orientacion }
Page.Orientation := poLandscape;
....
end;




Espero que sirva

Saludos.

Tienes razón jcarteagas, no recordaba ese detalle de que la primera (0) es la página de datos. Sin embargo, hay que hacer la aclaración, que esto es a partir de la versión 4 de FR. Antes de esta (<4) la primera página (0) es la primera de la plantilla.

Saludos.

PD.: Tu forma de asignar el tamaño de página es realmente mejor que la mía. Te agradezco que hayas parecido para dar esta alternativa al mal código que poste anteriormente.

fcios 21-01-2008 17:19:33

Muchas gracias D&W y jcarteagaf

el Page.PaperSize := DMPAPER_A4; funciona sin problema

les comento que también estuve probando de setear la página en el script pero no funciona correctamente ya que si bien los datos caen correctamente en sus respectivas páginas, el tamaño de las paginas sigue sin alterarse,
o sea, al verlo en pantalla muestra primero los datos y luego deja una gran area sin imprimir datos antes de pasar a la sigueinte página

Page1OnBeforePrint(Sender: TfrxComponent);
begin
// Page1.PaperSize:= DMPAPER_A4; // el scrip no tiene estas constantes
Page1.PaperSize:= 256;// 256 = custom page
// lo de arriba cambia el tamaño de la impresión pero la página sigue siendo larga
Page1.PaperWidth := 216.0;
Page1.PaperHeight := 279.0;
end;

Gracias


La franja horaria es GMT +2. Ahora son las 19:11:36.

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