PDA

Ver la Versión Completa : MasterData FastReport


Anusky
09-09-2010, 15:00:20
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
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 (http://www.clubdelphi.com/foros/member.php?u=28848)

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 :

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
Crea una variable cualquiera que te sirva de Contador.

En el evento OnAfterPrint del MasterData pones :

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.