Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/07/2011, 16:47
Avatar de HaverRamirez
HaverRamirez
 
Fecha de Ingreso: junio-2011
Ubicación: Guatemala
Mensajes: 273
Antigüedad: 13 años, 5 meses
Puntos: 33
Respuesta: Crystal report

Cita:
Iniciado por jhonwilliams Ver Mensaje
Hay varios puntos que mirar. (Todos desde mi punto de vista)

Primero la conexión.
Un reporte no queda "amarrado" a una conexión fija ya que estos se diseñan con un DataSetTipado, este es quien define la estructura de datos del reporte.
1.*Un reporte no queda amarrado a un dataset, ya sea tipado o que la estructura venga directamente de la base, mira, si creas el reporte con el asistente, lo puedes crear con una vista (base de datos), entonces creas toda tu estructura y cuando lo llames cambiar el source de tu reporte por tu dataset lleno, ahi te evitas la vuelta del dataset tipado.

2.*Al Crystal Reports le puedes mandar a cambiar la conexion del origen, asi cuando creas reportes por medio de procedimientos almacenados (arriba explique vistas) ahi si queda amarrada la direccion del servidor pero con las propiedades de la base donde lo creaste, pero se pueden cambiar aqui te dejo el codigo que uso para cambiar el string de conexion del crystal , asi no tengo que andar creando dataset tipados....

Código vb:
Ver original
  1. Public Sub SetConnectionsReports(ByRef Rpt As ReportDocument)
  2.         Dim server, base, user, pass As String
  3.  
  4.         Conexion = Split(Trim(VarConexionCPP.ConnectionString), "=")
  5.  
  6.         server = Trim(Conexion(2).Split(";").GetValue(0).ToString)
  7.         base = Trim(Conexion(3).Split(";").GetValue(0).ToString)
  8.         user = Trim(Conexion(4).Split(";").GetValue(0).ToString)
  9.         pass = Trim(Conexion(5).Split(";").GetValue(0).ToString)
  10.  
  11.         For Each connection As IConnectionInfo In Rpt.DataSourceConnections
  12.             connection.SetConnection(server, base, user, pass)
  13.         Next
  14.     End Sub