Numero total paginas en report.
Numero total paginas en report.
Hola tengo un cliente que esta empeñado en que el footer del reporte ponga "Pagina 1 de X", yo actualmente tengo puesto : FOOTER OemtoAnsi("Pagina: ")+str(oReport:nPage,3) CENTERED
Alguien podria indicarme como ponerlo.
Gracias.
Alguien podria indicarme como ponerlo.
Gracias.
-
- Posts: 845
- Joined: Sun Oct 09, 2005 5:36 pm
- Location: la laguna, mexico.
Re: Numero total paginas en report.
Garbi,
prueba asi:
msginfo(LEN(oReport:oDevice:aMeta))
saludos
paco
prueba asi:
msginfo(LEN(oReport:oDevice:aMeta))
saludos
paco
____________________
Paco
Paco
-
- Posts: 1033
- Joined: Fri Oct 07, 2005 3:33 pm
- Location: Cochabamba - Bolivia
Re: Numero total paginas en report.
Hola,
el Report nunca sabe cuantas páginas generará hasta que las genere, puede que calcules antes en función de la información, pero aún así en función de la resolución de la impresora no sabrás cuantas páginas tendrás al final.
La solución es que abras una a una las páginas generadas ( EMF ) y allí pongas (..say ) la información que necesitas, ya que al final sabes cuantas páginas se generaron
saludos
Marcelo
el Report nunca sabe cuantas páginas generará hasta que las genere, puede que calcules antes en función de la información, pero aún así en función de la resolución de la impresora no sabrás cuantas páginas tendrás al final.
La solución es que abras una a una las páginas generadas ( EMF ) y allí pongas (..say ) la información que necesitas, ya que al final sabes cuantas páginas se generaron
saludos
Marcelo
Re: Numero total paginas en report.
Tras las pruebas hechas,
Con : LEN(oReport:oDevice:aMeta) , no se si la pongo donde toca pero me sale pagina 1 de 1, pagina 2 de 2 así hasta el final, pero no pagina 1 de 12
La pongo en : FOOTER OemtoAnsi("Pagina: ")+str(oReport:nPage,3)+" de "+ STR(LEN(oReport:oDevice:aMeta),3) CENTERED
Y la otra opción no tengo ni idea de como implementarla. Algún ejemplo.
Con : LEN(oReport:oDevice:aMeta) , no se si la pongo donde toca pero me sale pagina 1 de 1, pagina 2 de 2 así hasta el final, pero no pagina 1 de 12
La pongo en : FOOTER OemtoAnsi("Pagina: ")+str(oReport:nPage,3)+" de "+ STR(LEN(oReport:oDevice:aMeta),3) CENTERED
Y la otra opción no tengo ni idea de como implementarla. Algún ejemplo.
Re: Numero total paginas en report.
Este tema a sido el coco para muchos de nosotros
aMeta, conforme va generando la pagina va incrementando el valor del array, asi que no vale si no hasta el final que termina de generar.
solucion no muy ortodoxa es contar cuantos _ en una pagina y hacer un recCount(), lastRec() y dividirlo entre la cantidad e irlas escribiendo en cada pagina
RecCount() / nRegistrosPorPagina
Saludos,
Mauricio
aMeta, conforme va generando la pagina va incrementando el valor del array, asi que no vale si no hasta el final que termina de generar.
solucion no muy ortodoxa es contar cuantos _ en una pagina y hacer un recCount(), lastRec() y dividirlo entre la cantidad e irlas escribiendo en cada pagina
RecCount() / nRegistrosPorPagina
Saludos,
Mauricio
Re: Numero total paginas en report.
Saludos amigos del foro:
Alguien pudo resolver o hacer algo en este tema??
De antemano, gracias por la ayuda.
Atentamente,
Rolando
Cochabamba, Bolivia
Alguien pudo resolver o hacer algo en este tema??
De antemano, gracias por la ayuda.
Atentamente,
Rolando
Cochabamba, Bolivia
Re: Numero total paginas en report.
Hay unas clases desarrolladas por thefull que tienen esa opción.
Saludos
Saludos
-
- Posts: 1033
- Joined: Fri Oct 07, 2005 3:33 pm
- Location: Cochabamba - Bolivia
Re: Numero total paginas en report.
Holas,
una prueba que funciona es: en el m'etodo end() de la clase report, a~nadir la l'inea
al final del m'etodo, y la funcion NumeraPag
Claro no es una soluci'on elegante, pero se puede hacer muchas cosa distintas para implementar la soluci'on
Saludos
Marcelo V'ia
una prueba que funciona es: en el m'etodo end() de la clase report, a~nadir la l'inea
Code: Select all
NumeraPag(::oDevice,1,1)
Code: Select all
Static Function NumeraPag(oPrn,nRowStep,nColStep)
Local x
Local nPaginas := Len( oPrn:aMeta )
Local aFicheros := oPrn:aMeta
Local nCol := 70*nColStep //colocalo donde prefieras
Local nLin := 64*nRowStep // ""
if nPaginas <= 1 // Solamente una pagina
Return Nil
endif
oPrn:aMeta := {}
FOR x := 1 TO nPaginas
//PAGE
oPrn:startpage()
oPrn:ImportWMF( aFicheros[ x ], .F. )
oPrn:Say( nLin,nCol, +Alltrim( Str( x ) ) +"/" + Alltrim( Str( nPaginas ) ) ,,,,,1 )
oPrn:endPage()
//ENDPAGE
NEXT
Return NIl
Saludos
Marcelo V'ia
Re: Numero total paginas en report.
Marcelo:
Gracias por responder
Yo tb habia pensado en algo asi, gracias por la solucion
Atentamente,
Rolando
Gracias por responder
Yo tb habia pensado en algo asi, gracias por la solucion
Atentamente,
Rolando
Re: Numero total paginas en report.
Marcelo:
la solucion sirve SOLO si haces PREVIEW.
Si mandas directo a la impresora no se crea oPrn:aMeta
Estuve revisando la clase TImprime.prg de TheFull y tiene el siguiente codigo:
donde se puede ver que el numerador esta condicionado a ::oPrn:lMeta (Preview)
Saludos
la solucion sirve SOLO si haces PREVIEW.
Si mandas directo a la impresora no se crea oPrn:aMeta
Estuve revisando la clase TImprime.prg de TheFull y tiene el siguiente codigo:
Code: Select all
if lPageCount .AND. ::oPrn:lMeta // Quiero poner contador de paginas y los tengo creados
::PageCount()
endif
Saludos
-
- Posts: 1033
- Joined: Fri Oct 07, 2005 3:33 pm
- Location: Cochabamba - Bolivia
Re: Numero total paginas en report.
Rolando,
entonces no quedar'ia mas opci'on que realizar doble pasada cuando la impresi'on es directa.
Sabes esto lo hice en 2009 junto con el preview en miniaturas, y ahora ya no utilizo tReport, quien sabe debemos poner trabajo en Ease Report
Saludos
Marcelo V'ia
entonces no quedar'ia mas opci'on que realizar doble pasada cuando la impresi'on es directa.
Sabes esto lo hice en 2009 junto con el preview en miniaturas, y ahora ya no utilizo tReport, quien sabe debemos poner trabajo en Ease Report
Saludos
Marcelo V'ia