Página 1 de 1
sobre treport
Publicado: Mié Jul 27, 2022 11:11 am
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?????
Re: sobre treport
Publicado: Mié Jul 27, 2022 1:21 pm
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 )
Re: sobre treport
Publicado: Mié Jul 27, 2022 7:45 pm
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