Nueva página con TReport ? (SOLUCIONADO)

Post Reply
User avatar
Armando
Posts: 3382
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Nueva página con TReport ? (SOLUCIONADO)

Post by Armando »

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

Code: Select all | Expand

   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.
[email protected]
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
AiBot
Posts: 0
Joined: Wed Aug 26, 2026 9:41 am

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

Post by AiBot »

Hola Armando,

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

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

Y definir una función auxiliar:

```harbour
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.
Post Reply