![]() |
Como Utilizo Correctamente FastReport
Hola Comunidad.
Mi problema es que estoy trabajando con delphi 7 e instale fast report como reporteador. Lo que quiero saber es como se utilizan estos objetos. Yo hice lo siguiente: * Cree un Datamodulo * Coloque un componente frxReport y un frxDBDataSet * los vincule y diseño el reporte, lo guardo y me sale bien cuando lo invoco con ShowReports(true) Hice pruebas modificando por codigo el Dataset del frxDBDataset y del frxReport modifique la propiedad IniFile que es donde relaciona el nombre fisico del archivo.fr3, pero esto no funciona, siempre me sale el mismo reporte cuando me debe salir en un lado uno y en otro el otro. No se si deba crear un frxDBDataset por cada reporte, aunque tampoco me funciono. Agradezco si me colaboran con esto. |
yomismo
Bueno tengo los 3 manuales completos en ingles (Usuario, programer y Developer) los tratare de entender y les cuento, de todas formas si alguien tiene experiencia con este reporteador le agradezco.
|
en tiempo de ejecución
¿por que no pruebas a cargar el archivo del reporte en tiempo de ejecución?
Yo siempre algo algo como esto: Código:
Screen.Cursor:=crHourGlass; |
hmrvivas
Gracias Nuk3zito.
Me sirvio lo que enviaste, ya pude resolver el problema. sinm embargo me queda la duda si es mejor trabajar con un solo frxReport, o realmente no importa tener uno para cada reporte. |
Depende del tipo de pantallas: Modales o No modales
Cita:
Ahora para la mayoría de las formas, pongo sus respectivos componentes de datasets, reporte, etc. dentro de la misma forma. ¿Por que? Yo aquí prefiero dejar la programación muy clara y sobretodo porque mis aplicaciones utilizan pantallas heredadas y de tipo MDI child, por lo cual raramente utilizaré un mismo dataset u otro componente en más de una vez a la vez. No se si me explico... cuando tienes pantallas modales, te puede servir mucho hacer lo que tu haces (de poner los componentes del reporte en un modulo de datos en este caso) porque solo abres una pantalla (forma) a la vez... pero cuando abres varias pantallas a la vez, necesitamos asegurarnos de que los componentes que utilice, solo se utilicen en esa pantalla... y la manera de hacer esto es poniendo los componentes en dicha forma. Así, si usas pantallas no modales, puedes crear tantas instancias quieras de tu misma forma sin perjudicar el funcionamiento entre ellas. Estoy hablando de instancias de clases (objetos), espero no haberte complicado más. en resumen, te recomiendo usar un frxReport por forma (solo en donde aplique, claro) y no uno genérico en un módulo de datos. Saludos. |
entendido
Si, yo trabajo solo pantallas modales, y ya he hecho varios reportes y funciona bien. Tendre en cuenta tu recomendacion para las formas MDI.
Bueno tengo un problema ahora y es que no se como usar una variable global de mi aplicacion que tengo en una unidad en el reporte. Es decir quiero asignarle a un frxMemoView el valor de una variable que no es del reporte, sino del proyecto. He probado con los scrip pero no he podido conseguirlo. Gracias. |
En el primer ejemplo también viene la forma de hacer eso...
Desde Delphi debes hacer algo como esto: Código:
TfrxMemoView(FindObject('mvAsegCliente')).Memo.Text:= trim(dbePropietario.Text); Y para poder visualizar la variable global en tu forma, basta que pongas en la clausula "uses" la unidad en donde esta variable global se encuentra declarada. Saludos. |
aclaracion...!!!!
Bueno, lo intente pero no me funciono nada.
Me explico nuevamente: Quiero utilizar en el evento OnbeforePrint de un frxMemoView una funcion que esta definida en una unidad externa de mi aplicacion. No se come referenciarla, y lo mismo con las variables externas, las coloco y me dice que no la recoce. Ej.
La funcion ArmaStrATMN la tengo en una unidad de mi aplicacion. error: Undeclarad Identifir 'ArmaStrATMN' probe colocando en la parte superior de la ficha de code lo siguiente
y me sale BEGIN 'expected' agradezco la ayuda |
y en el uses solo es necesario: Siempre y cuando esa unidad esté declarada dentro de tu proyecto. Saludos. |
La franja horaria es GMT +2. Ahora son las 07:40:22. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi