In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

sobre treport

Foro público de Xailer en español
Responder
Francisco Sanchez
Mensajes: 532
Registrado: Mié Feb 09, 2005 6:20 pm

sobre treport

Mensaje por Francisco Sanchez »

Estoy tocando la treport para que pueda mandar directamente a startdocpdf. En el METHOD Adjust, cuando comprueba si el informe supera el ancho de la pagina - como es este caso - y él automáticamente lo pone en apaisado, en lugar de hacer un enddoc newdow, hago un reset de oDevice ( el startdocpdf solo debe hacerse una vez para que funcione y ya lo puse en el METHOD Run ), y parece que todo bien. Pero en el oTitle tengo 10 lineas a mostrar ( la primera es un titulo con un font distinto ) y me lo hace todo bien, pero pierde el contenido de la primera de las lineas y de la últma del otitle:aline....alguna pista?????
Francisco Sanchez
Mensajes: 532
Registrado: Mié Feb 09, 2005 6:20 pm

Re: sobre treport

Mensaje por Francisco Sanchez »

He creado una PROPERTY para recoger el nombre y ruta del archivo PDF, y la he llamado cJobname_PDF . En el METHOD Run puse essto para pasar a pdf :

WITH OBJECT ::oDevice
:lPreview := ::lPreview
:cJobTitle := ::cJobName
IF Empty( ::cJobName_PDF )
:StartDoc()
ELSE
:StartDocPdf( ::cJobName_PDF )
ENDIF

EN EL method aDJUST hice este cambio para que pudiese pasar a apaisado automaticamente ( ahi en el caso de los pdf no se puede hacer enddoc y demas )

WITH OBJECT ::oDevice
nX := :PaperRes()[ 1 ]
IF ::nWidth > nX .AND. :nOrientation == poPORTRAIT .AND. ::lAutoLand
IF Empty( ::cJobName_PDF )
:EndDoc()
ENDIF

:nOrientation := poLANDSCAPE

::lOrientChg := .T.
IF Empty( ::cJobName_PDF )
:StartDoc()
ELSE
:Reset()
ENDIF
IF ::oPen == Nil
::oPen := TPen():New()
ENDIF
:oCanvas:oPen := ::oPen
ENDIF

Pero lo hace bien, crea el pdf, ademas lo ha puesto en apaisado peroo...... en el otitle se han perdido 2 lineas ( la primera y la ultima )
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9047
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: sobre treport

Mensaje por ignacio »

Hola,

Es imposible que funcione como pretendes ya que el informe se ajusta una vez para todas sus páginas y si se cambia la orientación, los resultados son los que indicas.

He modificado la clase para que sea más sencillo y todo consiste en poder crear múltiples informes que se pueden concatenar fácilmente. El control del número de página en los anidados es automático. Ejemplo:

Código: Seleccionar todo

 REPORT oReport ;
      TITLE "..." ;
      KEEP <<<<<<<<<<<<<<<<<<<<<<<<<<<
COLUMN ...
COLUMN ...
RUN REPORT oReport

REPORT oReport ;
      TITLE "...." ;
      TO PDF "c:\temp\test.pdf" <<<<<<<<<<<<<<<<<<<<<<<<<<<
COLUMN ...
COLUMN ...
RUN REPORT oReport
Nota: Cada página es un recurso GDI. Evita hacer miles de páginas ;-)

Estará disponible en la próxima versión de Xailer

Saludos
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Responder