FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Numero total paginas en report.
Posts: 350
Joined: Wed Nov 02, 2005 03:28 PM
Numero total paginas en report.
Posted: Mon Nov 07, 2011 05:46 PM

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.

Saludos,
Regards,

Jose Luis Alepuz
joseluis@mancomputer.com
www.mancomputer.com
Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM
Re: Numero total paginas en report.
Posted: Mon Nov 07, 2011 11:48 PM

Garbi,
prueba asi:
msginfo(LEN(oReport:oDevice:aMeta))
saludos
paco

____________________

Paco
Posts: 1088
Joined: Fri Oct 07, 2005 03:33 PM
Re: Numero total paginas en report.
Posted: Tue Nov 08, 2011 01:11 AM

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

Posts: 350
Joined: Wed Nov 02, 2005 03:28 PM
Re: Numero total paginas en report.
Posted: Tue Nov 08, 2011 06:31 PM

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.

Saludos,
Regards,

Jose Luis Alepuz
joseluis@mancomputer.com
www.mancomputer.com
Posts: 199
Joined: Thu Oct 06, 2005 09:07 PM
Re: Numero total paginas en report.
Posted: Tue Nov 08, 2011 07:01 PM

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 registros caben en una pagina y hacer un recCount(), lastRec() y dividirlo entre la cantidad e irlas escribiendo en cada pagina

RecCount() / nRegistrosPorPagina

Saludos,
Mauricio

Posts: 211
Joined: Wed Jul 16, 2008 12:59 PM
Re: Numero total paginas en report.
Posted: Sat Jan 09, 2016 12:45 AM

Saludos amigos del foro:

Alguien pudo resolver o hacer algo en este tema??

De antemano, gracias por la ayuda.

Atentamente,

Rolando
Cochabamba, Bolivia

Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Re: Numero total paginas en report.
Posted: Sat Jan 09, 2016 01:27 AM

Hay unas clases desarrolladas por thefull que tienen esa opci贸n.

Saludos

Posts: 1088
Joined: Fri Oct 07, 2005 03:33 PM
Re: Numero total paginas en report.
Posted: Sat Jan 09, 2016 02:13 AM
Holas,

una prueba que funciona es: en el m'etodo end() de la clase report, a~nadir la l'inea

Code (fw): Select all Collapse
   NumeraPag(::oDevice,1,1)


al final del m'etodo, y la funcion NumeraPag

Code (fw): Select all Collapse
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


Claro no es una soluci'on elegante, pero se puede hacer muchas cosa distintas para implementar la soluci'on

Saludos

Marcelo V'ia
Posts: 211
Joined: Wed Jul 16, 2008 12:59 PM
Re: Numero total paginas en report.
Posted: Sat Jan 09, 2016 12:23 PM

Marcelo:

Gracias por responder

Yo tb habia pensado en algo asi, gracias por la solucion

Atentamente,

Rolando

Posts: 211
Joined: Wed Jul 16, 2008 12:59 PM
Re: Numero total paginas en report.
Posted: Sun Jan 10, 2016 12:51 AM
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:
Code (fw): Select all Collapse
       if lPageCount .AND. ::oPrn:lMeta    // Quiero poner contador de paginas y los tengo creados
          ::PageCount()
       endif


donde se puede ver que el numerador esta condicionado a ::lMeta (Preview)


Saludos
Posts: 1088
Joined: Fri Oct 07, 2005 03:33 PM
Re: Numero total paginas en report.
Posted: Sun Jan 10, 2016 10:20 PM

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

Continue the discussion