Clipper/FiveWin - hoja nº en Rpt.

 
Vista:

hoja nº en Rpt.

Publicado por marcelo (161 intervenciones) el 17/07/2008 22:49:27
hola!
estoy emitiendo un listado con Report, necesito imprimir en el encabezado el nº de pagina y el total de paginas, cual es el comando?????
gracias
Saludos.
Forza Italia.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:hoja nº en Rpt.

Publicado por marcelo (161 intervenciones) el 17/07/2008 23:33:14
ya tengo hoja nº; es Rep:npage()

cual es para el total de paginas del reporte???????

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:hoja nº en Rpt.

Publicado por Gabriel Pascual (913 intervenciones) el 18/07/2008 15:38:48
Supongo que lo que quieres hacer es poner en tu informe pagina tal de tantas.

Por la forma en la que esta contruido el motor de reportes de fw, no es posible saber el numero total de hojas del informe ni antes ni durante el proceso de impresión, el numero total aparece hasta despus de haber generado la toalidad del informe y cuando a tienes todo listo para hacer la vista previa, pero para ese momento ya es demasiado tarde, porque todas la hojas se han impreso ya.

Para lograr lo que quieres y dependiendo de la version de five win que manejes debes de porceder de 2 formas distintas:

Si tienes una version 1.9 de 16 bits, entoces el motor de reportes en esa version tiene un metodo llamado :Rebuild(), utilizando el evento ON END REPORT, obitenes el numero total de paginas Rep:nTotalPages(), modificas el titulo donde quieras poner hoja tanta de tantas y llamas al metodo Rebuild() para construir nuevamente el informe y que salga con la leyenda que quieres.

En verisoines superiores de FW desaparece el metodo rebuild y la forma de hacer lo que quieres consiste en hacer el informe 2 veces:

Primero generas el informe sin vista previa y en el evento ON END REPORT obtienes el valor del numero total de paginas, y destruyes el objeto reporte antes de enviarlo a impresora, una vez con el numero total de paginas, vuelves a crear el reporte y ahora si, ya puedes oncluir el numero total.

Esto se debe a que el motor de reportes de FiveWin (que por cierto es similar al de Xailer), no sabe cuantas paginas va a generar, el proceso de creacion del informe es un do while ! eof() por lo tanto el
motor de informes no sabe cuantos registros caben en una hoja, porque no sabe cuantos renglones tiene cada columna, cuantos grupos tiene el informe ni el tamaño del papel sobre el cual imprime, influye en esto hasta la resolucion de la impresora, el mismo informe con el mismo numero de registros genera mas o menos registros por pagina en una impresora de inyeccion que en una laser.

Cada hoja del informe es un "dibujo", un archivo con la extensio .wmf o .emf almacenado en la carpeta temp de windows, como el motor de reportes va armando registro por registro y hoja por hoja confirurando cada columna por separado, no tiene forma de saber el total de paginas que integran el informe sino hasta que ha acabdo de generarlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar