PDA

Ver la Versión Completa : Report builder


antagona
13-05-2004, 18:11:27
Tengo un informe con varios subinformes.
El problema es que quiero cambiar la orientación del papel de un subinforme, es sencillo cambio la orientación a horizontal. No funciona por que el subinforme es de tipo hijo. Tendria que cambiarlo a tipo sección pero entonces no acepta el desplazamiento con respecto a un subinforme padre.

¿como puedo cambiar la orientación del papel sin que se cambie la posición del subinforme en la vista previa?

apicito
14-05-2004, 08:14:11
En evento onStartPage de reporte o del subreporte haz la siguiente selección:


procedure TSesActa.ResultStartPage(Sender: TObject);
var lPage: TppPage;
begin
lPage := Result.Engine.Page;
if (Result.AbsolutePageNo mod 2 = 0) then
begin
lPage.PrinterSetup.Orientation:=poPortait;
lPage.PrinterSetup.MarginTop := PPArriba.Value;
lPage.PrinterSetup.MarginBottom := PPAbaixo.Value;
lPage.PrinterSetup.MarginLeft := PPLado.Value;
end
else
begin
lPage.PrinterSetup.Orientation:=poLandscape;
lPage.PrinterSetup.MarginTop := PIArriba.Value;
lPage.PrinterSetup.MarginBottom := PIAbaixo.Value;
lPage.PrinterSetup.MarginLeft := PILado.Value;
end;
end;
En este caso estoy cambiando la configuración de la página dependiendo si es una página par o impar.

antagona
14-05-2004, 08:42:05
Gracias por tu tiempo. Pero el problema debe solucionarse en tiempo de diseño. No mediante programación.
Solo los subinformes de tipo Sección pueden tener una orientación diferente de la del padre. Yo tengo todos los subinformes como Hijos, el problema radica que si cambio alguno de estos subinformes a tipo Sección no aparecen en la misma posición que cuando los eran Hijos.

En los subinformes de tipo Hijo es posible estacer en relación a que componente se debe desplazar dentro del documento final. Pero en los subinformes de tipo Sección no existe esta posibilidad, y los subinformes aparecen en otro orden.
¿Como puedo cambiar este comportamiento?

apicito
14-05-2004, 11:29:42
Creo que sabes más del tema que yo, pero una pregunta: Este evento se lanza en el momento de la impresión de cada página del listado, si haces un if que determine si está imprimiendo un determinado subinforme puedes aplicarle a esa página los parametros que quieras.¿No?

antagona
14-05-2004, 14:07:48
Puede ser, pero ya te digo que el problema no es solucionable a traves de la modificación de codigo ya que es un problema del cliente con los report que ya estan creados.

Ya tengo de idea de como hacerlo pero es un poco cutre... no se... en fin. Gracias de todas formas.

Chao.
Manolo