Ir al contenido


Foto

Ruta destino Rave Reports


  • Por favor identifícate para responder
5 respuestas en este tema

#1 elrodrix

elrodrix

    Member

  • Miembros
  • PipPip
  • 24 mensajes

Escrito 03 julio 2013 - 12:09

Que tal ? estoy trabajando en una aplicacion que tira un reporte en rave reports. Utilizo rave reports para confeccionar mi reporte. En el proyecto delphi, en el formulario, utilizo el componente TRvProject para lanzar el reporte.

Mi consulta es la siguiente: resulta que todo funciona muy bien, pero a la hora de crear un instalador (con instalshield), instalo el programa en otra maquina, y quiero tirar un reporte, me da un error, que el componente no encuentra el archivo .rav en la ruta especificada. Esto se debe a que en mi componente TRvProject, en la propiedad ProjectFile, le asigne una ruta donde se encontraría el archivo .rav. Pero cuando instalo mi aplicación, el programa esta buscando esa ruta para lanzar el reporte, y obviamente no existe, ya que mi aplicacion se instala en archivos de programas de WINDOWS. En todo caso, para cada una de las maquinas donde instalo mi aplicacion, deberia crear una carpeta y cada una de las subcarpetas con la ruta especifica en donde guardaria mi archivo .rav. les dejo una captura.

Imagen Enviada

Mi pregunta es: Existe alguna forma de que, el componente TRvProject busque el archivo .rav dentro de la raiz donde se encuentra el proyecto?. En realidad cuando estoy trabajando con el proyecto, el archivo .rar si se guarda en la raiz del proyecto (en C:\user\misdocumentos\proyecto\etc...) pero cuando genero el instalador, el componente TRvProject sigue buscando esa ruta para tirar el reporte, y obviamente en ninguna maquina que instalo mi aplicacion se encuentra. Tiene Solucion? .. gracias y saludos !
  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.469 mensajes
  • LocationMéxico

Escrito 03 julio 2013 - 12:38

Lo que yo hago es un directorio dentro del directorio del proyecto para los reportes y en la propiedad ProjectFile escribo Reportes\Project1.rav

Con eso aseguro que los reportes estarán en el directorio Reportes de mi proyecto.

Saludos
  • 0

#3 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 03 julio 2013 - 12:40

Hola amigo elrodrix

La buena noticia es que claro que puedes hacer dinámica la ruta de tus reportes, bueno !, semi-dinámica jejeje porque podemos asignar una carpeta en la ruta de tu exe específicamente para los reportes y ahí buscaría siempre...

En tiempo de ejecución, un momento antes de lanzar el reporte, cambia la propiedad ProjectFile con la ruta de tu exe (donde quiera que se encuentre) + Nombre de Carpeta de Reportes + NombreReporte.rav...

La ruta de tu exe la encuentras con el comando ExtractFilePath(Application.ExeName) donde Application.ExeName obtiene la ruta completa, con todo y nombre del exe, donde sea que está instalado y con ExtractFilePath lo que haces es quitar el nombre del archivo exe y obtener la pura ruta...

Espero te sea de ayuda amigo (y)

Saludox ! :)
  • 0

#4 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.469 mensajes
  • LocationMéxico

Escrito 03 julio 2013 - 12:46

Lo que comenta Fenareth es la ley :D así no tendrás ningún problema. (y)

Saludos
  • 0

#5 elrodrix

elrodrix

    Member

  • Miembros
  • PipPip
  • 24 mensajes

Escrito 04 julio 2013 - 05:10

Ya lo pude resolver gracias a FGarcia de ClubDelphi, ahi va el codigo



delphi
  1. //Establecemos la ruta de la aplicacion
  2. RutaAPP := ExtractFilePath(ParamStr(0));
  3.  
  4.  
  5. RvSystem1.SystemSetups := rvSystem1.SystemSetups - [ssAllowSetup];
  6. RvProject1.ProjectFile :=  RutaAPP + 'Reporte1.rav';



Antes que nada, hay que declarar la variable "RutaAPP" de tipo string.

Con esto ya se soluciona. Muchas Gracias y saludos
  • 0

#6 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 04 julio 2013 - 08:20

Amigo elrodix,

Como último comentario, y a modo de aclaración meramente cultural ExtractFilePath(ParamStr(0)); y ExtractFilePath(Application.ExeName) generan exactamente el mismo resultado, por lo que te recomendó FGarcia en ClubDelphi es en esencia lo mismo que te propusimos por aquí (y)

Qué bueno que tu problema ha quedado resuelto amigo  (h)  ;)

Saludox ! :)
  • 0




IP.Board spam blocked by CleanTalk.