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

¿Como cambiar el nombre de la base de datos en Crystal Reports 9 Dinamicamente?

Estas en el tema de ¿Como cambiar el nombre de la base de datos en Crystal Reports 9 Dinamicamente? en el foro de .NET en Foros del Web. Hola a todos, tengo el siguiente problema: Tengo una aplicación que consta como de 60 reportes en Crystal Reports y dado mis requerimientos necesito mostrar ...
  #1 (permalink)  
Antiguo 29/04/2005, 11:31
Rodolfo Israel
Invitado
 
Mensajes: n/a
Puntos:
¿Como cambiar el nombre de la base de datos en Crystal Reports 9 Dinamicamente?

Hola a todos, tengo el siguiente problema:

Tengo una aplicación que consta como de 60 reportes en Crystal Reports y dado mis requerimientos necesito mostrar informacion de distintas bases de datos con la misma estructura utilizando lo reportes que ya he creado, el problema es que no encuentro la manera de especificar el nombre de la base de datos en tiempo de ejecucion para que un reporte determinado abra una u otra base de datos, la unica solucion que he encontrado es modificar la cadena de seleccion desde el diseñador de reportes a mano, y hacer lo mismo para cada reporte cada vez que necesito cambiar de base de datos, alguien si es posible lo que estoy pidiendo? o si necesito hacer otra copia de todos los reportes por cada base de datos diferente que vaya a crear? cualquier sugerencia o aportacion es bien recibida. Gracias
  #2 (permalink)  
Antiguo 29/04/2005, 11:43
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Hola rodolfo,
En el formulario de CrystalRepostPreview, en el constructor has de poner algo así:

Public Sub New()
MyBase.New()

'El Diseñador de Windows Forms requiere esta llamada.
InitializeComponent()

'Agregar cualquier inicialización después de la llamada a InitializeComponent()

Dim miInforme As Informe = New Informe
miInforme.DataSourceConnections(0).SetConnection(" ", RutaBDPRN, "", "")
CrystalReportViewer1.ReportSource = miInforme
'CrystalReportViewer1.SelectionFormula = strSQL

End Sub

Yo lo hago así... No se si trabajas con Access, SQL Server... pero en fin... Esto ya te puede orientar. Este ejemplo es sobre access, y la variable RutaBDPRN ontiene la ruta del fichero MDB que uso para los reportes.

Suerte!
__________________
..:: moNTeZIon ::..
  #3 (permalink)  
Antiguo 30/04/2005, 08:48
Rodolfo Israel
Invitado
 
Mensajes: n/a
Puntos:
Ya encontre la solucion

Gracias MonteZion por tu aportación, por ahi iba la idea pero no me funciono ese código al 100% pues ademas de necesitar autentificacion tenia que configurar otros detalles, ayer encontre la solución, ya lo probe y funciona perfectamente, ahi se las mando esperando que a alguien le sea de utilidad, por cierto el motor de base de datos que estoy usando es SQL Server 2000 y pues por lo menos ahi funciona:

Código:
	  

'Variables publicas a de mi clase

Dim R As CrystalDecisions.CrystalReports.Engine.ReportDocument
Dim mArchivoAExportar As String

'Evento Page load de mi página web o puede ser tambien de una 
'aplicacion windows

Page_Load ....

   Dim Usuario as string  = "Nombre_Usuario"
   Dim Contraseña as string  = "Contraseña_Usuario"
   Dim Servidor as string  = "Nombre_Servidor"
   Dim BaseDatos as string = "Nombre_Base_Datos"

   If Not R Is Nothing Then
				
	  Dim crTables As CrystalDecisions.CrystalReports.Engine.Tables
	  Dim crTable As CrystalDecisions.CrystalReports.Engine.Table
	  Dim crConnInfo As New CrystalDecisions.Shared.ConnectionInfo
	  Dim crLogOnInfo As CrystalDecisions.Shared.TableLogOnInfo

	  R.SetDatabaseLogon(Usuario,Contraseña,Servidor,BaseDatos)

	  For Each crTable In R.Database.Tables
		 
			crConnInfo.ServerName = Servidor
			crConnInfo.DatabaseName = BaseDatos
			crConnInfo.UserID = Usuario
			crConnInfo.Password = Contraseña
			crLogOnInfo = crTable.LogOnInfo
			crLogOnInfo.ConnectionInfo = crConnInfo
			crTable.ApplyLogOnInfo(crLogOnInfo)
			crTable.LogOnInfo.ConnectionInfo.Password = Contraseña
			crTable.Location = BaseDatos & ".dbo." & crTable.Name
	  Next

	  visor.ReportSource = R 'Este es el control que muestra el reporte

	  visor.DataBind()
  End if

end sub

Última edición por Rodolfo Israel; 30/04/2005 a las 08:56
  #4 (permalink)  
Antiguo 10/09/2008, 10:58
 
Fecha de Ingreso: septiembre-2008
Mensajes: 1
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: ¿Como cambiar el nombre de la base de datos en Crystal Reports 9 Dinamicam

Lo mas seguro es evitar dejar referencia en los reportes, para ello en localization del menu database, solo dejemos el nombre del sp o tabla, bueno, solo para no volver a tener que estar cambiando los parametros de cada reporte al llamarlo.

Saludos
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 18:53.