Como cargar un informe crystal report especificando el nombre del informe para aplicaciones web

06/04/2006 - 13:17 por [Juanjo] | Informe spam
Hola grupo:

Estoy haciendo una pagina web (VC#2005) y tengo que mostrar un informe
con Crystal Report.

Si establezco las propiedades en tiempo de diseño (Crystal Report Viewer
y Crystal Report Source),
elijo el informe, etc, funciona bien, pero cuando intento hacerlo por codigo
no me va, me dice que no
encuentra el informe, y necesito poder especificarlo, porque casi con total
seguridad, cuando implante
la aplicacion, no estara en el mismo directorio.

Para cargar el informe uso: (El CrystalReportSource ya esta enlazado con
el Crystal ReportViewer)

//ESTE FALLA
this.CrytalRerportSource1.ReportDocument.Load(@"Informes\\InformePrueba.rpt")
;

//ESTE VA BIEN
this.CrytalRerportSource1.ReportDocument.Load(@"c:\\www\\pagina\\Informes\\InformePrueba.rpt")
;


Alguna idea?

Muchas gracias

Preguntas similare

Leer las respuestas

#1 Octavio Hernandez
06/04/2006 - 13:35 | Informe spam
Juanjo,

Yo lo que haría sería poner una entrada en el Web.config para almacenar la
ruta donde están los informes.
Eso permitiría cambiar la ruta sin recompilar la aplicación.

En la sección <appSettings> de Web.config pondrías algo como

<add key="DirectorioInformes" value="C:\\Informes" />

y luego en el programa harías:

this.CrystalReportSource1.ReportDocument.Load(
ConfigurationSettings.AppSettings["DirectorioInformes"] +
"\\InformePrueba.rpt");

Slds - Octavio



"[Juanjo]" escribió en el mensaje
news:%
Hola grupo:

Estoy haciendo una pagina web (VC#2005) y tengo que mostrar un informe
con Crystal Report.

Si establezco las propiedades en tiempo de diseño (Crystal Report
Viewer y Crystal Report Source),
elijo el informe, etc, funciona bien, pero cuando intento hacerlo por
codigo no me va, me dice que no
encuentra el informe, y necesito poder especificarlo, porque casi con
total seguridad, cuando implante
la aplicacion, no estara en el mismo directorio.

Para cargar el informe uso: (El CrystalReportSource ya esta enlazado
con el Crystal ReportViewer)

//ESTE FALLA

this.CrytalRerportSource1.ReportDocument.Load(@"Informes\\InformePrueba.rpt")
;

//ESTE VA BIEN

this.CrytalRerportSource1.ReportDocument.Load(@"c:\\www\\pagina\\Informes\\InformePrueba.rpt")
;


Alguna idea?

Muchas gracias

Respuesta Responder a este mensaje
#2 [Juanjo]
06/04/2006 - 13:59 | Informe spam
Gracias por la respuesta, pero el problema es que no se donde estara
instalada la aplicacion, en que
directorio, por lo que no me vale poner value="C:\\informes" necisto poder
especificar un ruta relativa
no absoluta.

Alguna idea?

Nuevamente, muchas gracias

"Octavio Hernandez" escribió en el mensaje
news:
Juanjo,

Yo lo que haría sería poner una entrada en el Web.config para almacenar la
ruta donde están los informes.
Eso permitiría cambiar la ruta sin recompilar la aplicación.

En la sección <appSettings> de Web.config pondrías algo como

<add key="DirectorioInformes" value="C:\\Informes" />

y luego en el programa harías:

this.CrystalReportSource1.ReportDocument.Load(
ConfigurationSettings.AppSettings["DirectorioInformes"] +
"\\InformePrueba.rpt");

Slds - Octavio



"[Juanjo]" escribió en el mensaje
news:%
Hola grupo:

Estoy haciendo una pagina web (VC#2005) y tengo que mostrar un informe
con Crystal Report.

Si establezco las propiedades en tiempo de diseño (Crystal Report
Viewer y Crystal Report Source),
elijo el informe, etc, funciona bien, pero cuando intento hacerlo por
codigo no me va, me dice que no
encuentra el informe, y necesito poder especificarlo, porque casi con
total seguridad, cuando implante
la aplicacion, no estara en el mismo directorio.

Para cargar el informe uso: (El CrystalReportSource ya esta enlazado
con el Crystal ReportViewer)

//ESTE FALLA

this.CrytalRerportSource1.ReportDocument.Load(@"Informes\\InformePrueba.rpt")
;

//ESTE VA BIEN

this.CrytalRerportSource1.ReportDocument.Load(@"c:\\www\\pagina\\Informes\\InformePrueba.rpt")
;


Alguna idea?

Muchas gracias





Respuesta Responder a este mensaje
#3 Octavio Hernandez
06/04/2006 - 14:10 | Informe spam
Juanjo,

En ese caso, utiliza la función Server.MapPath() de ASP.NET que permite
obtener la ruta física asociada a una ruta lógica de la aplicación.

De todos modos, te diré que personalmente creo que lo que te proponía antes
es mejor. Con este método que propones tendrías los propios informes
(ficheros .rpt) en directorios accesibles públicamente, por lo que
potencialmente te los podrían "robar". Los ficheros .rpt pueden estar en
CUALQUIER lugar del equipo, lo único necesario es darle a ASP.NET los
permisos correspondientes para leerlos.

Slds - Octavio




"[Juanjo]" escribió en el mensaje
news:%

Gracias por la respuesta, pero el problema es que no se donde estara
instalada la aplicacion, en que
directorio, por lo que no me vale poner value="C:\\informes" necisto
poder especificar un ruta relativa
no absoluta.

Alguna idea?

Nuevamente, muchas gracias

"Octavio Hernandez" escribió en el mensaje
news:
Juanjo,

Yo lo que haría sería poner una entrada en el Web.config para almacenar
la ruta donde están los informes.
Eso permitiría cambiar la ruta sin recompilar la aplicación.

En la sección <appSettings> de Web.config pondrías algo como

<add key="DirectorioInformes" value="C:\\Informes" />

y luego en el programa harías:

this.CrystalReportSource1.ReportDocument.Load(
ConfigurationSettings.AppSettings["DirectorioInformes"] +
"\\InformePrueba.rpt");

Slds - Octavio



"[Juanjo]" escribió en el mensaje
news:%
Hola grupo:

Estoy haciendo una pagina web (VC#2005) y tengo que mostrar un
informe con Crystal Report.

Si establezco las propiedades en tiempo de diseño (Crystal Report
Viewer y Crystal Report Source),
elijo el informe, etc, funciona bien, pero cuando intento hacerlo por
codigo no me va, me dice que no
encuentra el informe, y necesito poder especificarlo, porque casi con
total seguridad, cuando implante
la aplicacion, no estara en el mismo directorio.

Para cargar el informe uso: (El CrystalReportSource ya esta enlazado
con el Crystal ReportViewer)

//ESTE FALLA

this.CrytalRerportSource1.ReportDocument.Load(@"Informes\\InformePrueba.rpt")
;

//ESTE VA BIEN

this.CrytalRerportSource1.ReportDocument.Load(@"c:\\www\\pagina\\Informes\\InformePrueba.rpt")
;


Alguna idea?

Muchas gracias









Respuesta Responder a este mensaje
#4 [Juanjo]
06/04/2006 - 14:18 | Informe spam
Ok voy a seguir entonces tu consejo. Muchas gracias.


"Octavio Hernandez" escribió en el mensaje
news:
Juanjo,

En ese caso, utiliza la función Server.MapPath() de ASP.NET que permite
obtener la ruta física asociada a una ruta lógica de la aplicación.

De todos modos, te diré que personalmente creo que lo que te proponía
antes es mejor. Con este método que propones tendrías los propios informes
(ficheros .rpt) en directorios accesibles públicamente, por lo que
potencialmente te los podrían "robar". Los ficheros .rpt pueden estar en
CUALQUIER lugar del equipo, lo único necesario es darle a ASP.NET los
permisos correspondientes para leerlos.

Slds - Octavio




"[Juanjo]" escribió en el mensaje
news:%

Gracias por la respuesta, pero el problema es que no se donde estara
instalada la aplicacion, en que
directorio, por lo que no me vale poner value="C:\\informes" necisto
poder especificar un ruta relativa
no absoluta.

Alguna idea?

Nuevamente, muchas gracias

"Octavio Hernandez" escribió en el
mensaje news:
Juanjo,

Yo lo que haría sería poner una entrada en el Web.config para almacenar
la ruta donde están los informes.
Eso permitiría cambiar la ruta sin recompilar la aplicación.

En la sección <appSettings> de Web.config pondrías algo como

<add key="DirectorioInformes" value="C:\\Informes" />

y luego en el programa harías:

this.CrystalReportSource1.ReportDocument.Load(
ConfigurationSettings.AppSettings["DirectorioInformes"] +
"\\InformePrueba.rpt");

Slds - Octavio



"[Juanjo]" escribió en el mensaje
news:%
Hola grupo:

Estoy haciendo una pagina web (VC#2005) y tengo que mostrar un
informe con Crystal Report.

Si establezco las propiedades en tiempo de diseño (Crystal Report
Viewer y Crystal Report Source),
elijo el informe, etc, funciona bien, pero cuando intento hacerlo por
codigo no me va, me dice que no
encuentra el informe, y necesito poder especificarlo, porque casi con
total seguridad, cuando implante
la aplicacion, no estara en el mismo directorio.

Para cargar el informe uso: (El CrystalReportSource ya esta enlazado
con el Crystal ReportViewer)

//ESTE FALLA

this.CrytalRerportSource1.ReportDocument.Load(@"Informes\\InformePrueba.rpt")
;

//ESTE VA BIEN

this.CrytalRerportSource1.ReportDocument.Load(@"c:\\www\\pagina\\Informes\\InformePrueba.rpt")
;


Alguna idea?

Muchas gracias













email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida