Foros del Web » Programación para mayores de 30 ;) » .NET »

enlazar crystal reports

Estas en el tema de enlazar crystal reports en el foro de .NET en Foros del Web. Hola, creo un report en crystal (crystalreports del .NET) usando el asistente de conexión a la base de datos (es access). El problema supongo que ...
  #1 (permalink)  
Antiguo 09/03/2007, 04:02
 
Fecha de Ingreso: agosto-2006
Mensajes: 19
Antigüedad: 18 años, 3 meses
Puntos: 0
enlazar crystal reports

Hola,
creo un report en crystal (crystalreports del .NET) usando el asistente de conexión a la base de datos (es access). El problema supongo que está ahí ya que usa una ruta absoluta hacia la base de datos.

Cuando muestro el report desde la aplicación todo funciona bien ya que se carga la ruta absoluta. El problema está cuando, por ejemplo, se cambia la ubicación de la base de datos. Entonces, aparece un mensaje solicitando el servidor, nombre de la bdd, user y pass.

Para solucionarlo he usado el método SetDatabaseLogon() de la clase ReportDocument, en el que puedes pasarle (a una instancia del reporte) precisamente esos datos....pero al ejecutar la aplicación vuelve a pedirmelos.

He probado muchas cosas (incrustar el reporte o no incrustarlo, usar el método Refresh del informe instanciado, etc, etc...) pero no hay forma de lograrlo.

Ideas? Opiniones? Experiencias? Trozos de código que pueda probar?

Mil gracias de antemano y saludos.
  #2 (permalink)  
Antiguo 09/03/2007, 08:11
 
Fecha de Ingreso: julio-2006
Mensajes: 127
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: enlazar crystal reports

a ver mira de lo que tengo entendido tendrias que al momento de conectarte a la aplicacion lo deberias hacer mediante la lectura de un archivo por ejemplo tener las cadenas de conexion en ese archivo, y yo trabaje para cargar los datos al crystal mediante data set entonces como el data set simpre se direcciona a tu base de datos asegurarias asi mantener siempre la conexion con tu base y en el caso de cambiar el servidor solo tendrias que camair el el nombre del servidor y las claves

conexion.txt

server="NOMBRE DEL SERVIDOR o IP";Initial Catalog="NOMBRE DE LA BDD"; Connect Timeout=30; user id="sa"; password="sa"
server=SERVIDOR;Initial Catalog=cLIENTESTimeout=30;user id="sa";pwd="sa"

ESPERO TE AYUDE ESTA PEQUE SUGUERENCIA, yo estoy trabajando asi de esta manera pero tal exista otra forma, con todo podemos esperar a mas respuestas

saludos

DS
  #3 (permalink)  
Antiguo 09/03/2007, 09:03
 
Fecha de Ingreso: agosto-2006
Mensajes: 19
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: enlazar crystal reports

Hola dannyjsm.
Ante todo muchas gracias por responder y darme tu opinión.

No sé si entendí bien tu respuesta....
Cuando utilizo un dataset para aportar los datos al informe....no tengo ningún problema. La cadena de conexión a la base de datos suelo guardarla en un archivo de configuración (fácilmente accesible de la forma: Properties.Settings.Default.CadenaBDD, por ejemplo) y que sería muy parecido a lo que me dices.

Tampoco tengo problemas al usar informes no incrustados, a los que les paso un dataset con los datos que me conviese y cargo (load) el form con el CrystalReportViewer pasándole la ruta del informe 'externo'.

El problema lo tengo si no quiero usar los datasets.
Imagina que a un proyecto le agregas un elemento nuevo, un reporte de crystal (.rpt) y empiezas a diseñarlo (modo diseño). Usando el asistente de conexión puedes seleccionar el orígen de datos, sea un dataset o sea una nueva conexión. Es al hacerlo de esta última forma cuando el informe almacena una ruta absoluta que posteriormente (cuando quiero depurar o ejecutar el exe) me dará problemas por el hecho de ser una ruta absoluta (meto el exe en otro PC y no encontrará la bdd). Es ahí cuando supongo que el método SetDatabaseLogon() (de la clase ReportDocument) (creo que hay otro método si no se utiliza ReportDocument, pero no recuerdo ya que no estoy en mi PC, en estos momentos) debería permitir pasar al informe (a una instancia del mismo) una nueva ruta, nuevo servidor, pass, user,...

De hecho....cuando lo hago, no salta ninguna excepción al depurar....pero salta una ventana preguntando el server, ruta, user y pass......como si los datos suministrados en el SetDatabaseLogon(), no se tuviesen en cuenta.

Un saludo y gracias nuevamente por tu respuesta.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:47.