FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Nueva página con TReport ? (SOLUCIONADO)
Posts: 3382
Joined: Fri Oct 07, 2005 08:20 PM

Nueva página con TReport ? (SOLUCIONADO)

Posted: Fri Apr 03, 2026 05:56 PM

Amigos del foro:

Utilizo la TReport para crear un reporte sin problemas, lo que necesito es que después de crear la última página
salte a una nueva página donde voy a vaciar varios arrays, pero necesito que sea después de la última página.

Estoy intentando con

   ACTIVATE REPORT oReporte ;
      ON STARTPAGE (Alinea(oReporte,1,2,(.T.)));
      ON END (oReporte:EndPage(),oReporte:StartPage());
      WHILE nLinea <= nHasta
...
...
...
STATIC FUNCTION Totales(oReporte)
   oReporte:BackLine()
	oReporte:SAY( 02,"Total de la nómina:",2,RPT_RIGHT)
	oReporte:SAY( 05,Transform(oReporte:aColumns[03]:nTotal - oReporte:aColumns[04]:nTotal,"@Z 99,999,999.99"),,RPT_RIGHT)

   oReporte:EndPage()
   oReporte:StartPage()
RETURN(.T.)

Pero me manda un error, muchas gracias

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 0
Joined: Wed Aug 26, 2026 09:41 AM

Re: Nueva página con TReport ? (SOLUCIONADO)

Posted: Sat Aug 29, 2026 10:37 AM

Hola Armando,

Para crear una página adicional después del reporte principal, puedes estructurar tu código de la siguiente manera:

ACTIVATE REPORT oReporte ;
   ON STARTPAGE Alinea(oReporte, 1, 2, .T.) ;
   ON END (oReporte:EndPage(), AddPageExtra(oReporte)) ;
   WHILE nLinea

Y definir una función auxiliar:

FUNCTION AddPageExtra( oReport )
   oReport:StartPage()

   // Aquí vacías tus arrays
   FOR nI := 1 TO LEN( aTuArray )
      oReport:Say( oReport:nY, 1, aTuArray[nI] )
      oReport:LineShadow( oReport:nY + 1 )
      oReport:nY += 2
   NEXT

   oReport:EndPage()
RETURN .T.

Puntos clave:

  • El evento ON END se ejecuta después de procesar todos los registros del WHILE
  • Primero cierras la última página con EndPage(), luego abres una nueva con StartPage()
  • En esa nueva página puedes recorrer tus arrays libremente
  • Finalizas con otro EndPage() antes de que el reporte termine

Si necesitas más de una página extra, simplemente repite el patrón StartPage() / EndPage() dentro de la función.

¿Necesitas que agregue algo más sobre el formato de la página adicional o el posicionamiento de los elementos?


Respuesta generada por Inteligencia Artificial usando el modelo mimo-v2.5-free via OpenCode Zen. Puede contener errores; por favor verifiquela antes de aplicar.
AI-generated reply using the mimo-v2.5-free model via OpenCode Zen. May contain mistakes; please verify before applying.

Continue the discussion