Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   MasterData FastReport (https://www.clubdelphi.com/foros/showthread.php?t=69787)

Anusky 09-09-2010 15:00:20

MasterData FastReport
 
Buenos días, ¿alguien sabe como poner un numero determinado de filas de MasterData por página?. Es decir, quiero que por hoja salgan 10 registros, si hay más que salgan en otra página. Muchas gracias por adelantado a todos!

Efren2006 17-09-2010 04:14:59

Debes Colocar en la Propiedad del MasterData RowCount al Nro de Registros que quieres imprimir.

Saludos

Anusky 17-09-2010 11:21:07

Gracias por contestar pero con esa propiedad sólo le puedo insertar el número total de registros que va a sacar la masterdata, no el total por página. ¿Alguna otra idea?

Efren2006 24-09-2010 03:17:44

Cita:

Empezado por Anusky (Mensaje 376705)
Gracias por contestar pero con esa propiedad sólo le puedo insertar el número total de registros que va a sacar la masterdata, no el total por página. ¿Alguna otra idea?

Amigo
Anusky

Disculpa no lei detenidamente tu pregunta, efectivamente tuve el mismo problema y no lo pude resolver a traves de la herramienta, tuve que en el reporte diseñar un número determinado de Paginas posibles que el reporte podria tener ty jugar un poco con SQL y programacion en el reporte, en mi caso era en un formato de gobierno, y se podia establecer que no habrian mas de por ejemplo 20 paginas, al final diseña 30 paginas para cubrir cualquier contingencia.

Anusky 24-09-2010 10:21:16

Bueno esperaba que fastreport tuviera alguna opción para definir registros por página pero nada, tocará calentarse la cabeza de otra manera. Gracias por contestar :)

gluglu 24-09-2010 11:25:30

'Predefinir' no puedes predefinir ese valor. Pero es muy fácil contar el número de registros en el evento OnAfterPrint de la banda MasterData, con una variable creada para el contador de registros.

Ahí compruebas si el número de registros que has imprimido es mayor que el número que tu designes, y si es así, provocas un Engine.NewPage, y vuelves a poner el valor de la variable a 0.

;)

Anusky 24-09-2010 11:37:16

ok, algo parecido es lo que estaba haciendo para detectar el número de registros impresos es una página, lo que pasa que usaba la variable page y hasta el afterprint del primer registro de la página siguiente no me detectaba que estaba en otra página. Probare a enfocarlo de otra manera con lo de forzar la creación de una nueva página con Engine.NewPage que no lo conocía :D, gracias!

gluglu 24-09-2010 11:42:07

Crea una variable cualquiera que te sirva de Contador.

En el evento OnAfterPrint del MasterData pones :

Código:

Contador := Contador + 1;
if Contador > 10 then begin
  Engine.NewPage;
  Contador := 0;
end;

El propio FastReport se encargará de todo lo demás, en cuanto a cabeceras, pies de página y cualquier otro elemento que afecte al cambio de página.

Así de simple. :cool:

Anusky 24-09-2010 14:41:54

Cierto. Graciaaas! :D

Efren2006 24-09-2010 21:17:41

Cita:

Empezado por gluglu (Mensaje 377383)
Crea una variable cualquiera que te sirva de Contador.

En el evento OnAfterPrint del MasterData pones :

Código:

Contador := Contador + 1;
if Contador > 10 then begin
  Engine.NewPage;
  Contador := 0;
end;

El propio FastReport se encargará de todo lo demás, en cuanto a cabeceras, pies de página y cualquier otro elemento que afecte al cambio de página.

Así de simple. :cool:

Definitavamente siempre hay algo nuevo que aprender,, y pensar que me tarde un dia completo solo para resolver algo de 3 Lineas...

Gracias por el aporte.


La franja horaria es GMT +2. Ahora son las 00:32:00.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi