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

Crystal report

Estas en el tema de Crystal report en el foro de .NET en Foros del Web. Ola, Tengo un problema debiodo a que quiero hacer unos cuantos reportes, el detalle es que no quisiera utlizar una conexion estatica(las que defines en ...
  #1 (permalink)  
Antiguo 19/06/2011, 08:45
Avatar de PanKrdo  
Fecha de Ingreso: julio-2007
Ubicación: Veracruz
Mensajes: 46
Antigüedad: 17 años, 4 meses
Puntos: 2
Exclamación Crystal report

Ola,

Tengo un problema debiodo a que quiero hacer unos cuantos reportes, el detalle es que no quisiera utlizar una conexion estatica(las que defines en el explorador de servidores), en fin quisiera hacer un reporte sin el asitente, dejarlo en blanco, y al iniciar mi aplicacion asignarle la conexion que genero con mysqlconnection a mi reporte, asignarle una tabla(tengo entendido que esto es con el dataset), y al final llenar el reporte con la informacion que requiera el usuario y no obtener todos los registros de mi tabla seleccionada,

Utilizo VB2008
  #2 (permalink)  
Antiguo 20/06/2011, 07:20
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 8 meses
Puntos: 76
Respuesta: Crystal report

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.

Segundo
Un DataSet es un conjunto de tablas por lo tanto el reporte puede tener como origen para su diseño una o varias tablas, cuando quieres cargar el reporte en tu aplicacion solo debes pasar una instancia del DataSet con el cual se diseño con los datos ya cargados y el reporte muestra lo que tu le entregues ya sea:
Cita:
la informacion que requiera el usuario
o todos los registros de la tabla, eso se define desde la aplicación si el usuario realiza filtros o no

Tercero Codigo de Ejemplo.

Cargamos los datos en un DataSet
Código:
//Cargamos el reporte
Core.Calls calls = new MiSistema.Core.Calls();
datesDataSet1.Clear();
datesDataSet1.tblCalls.Merge(calls.GetDataReportCalls());

Creamos una instancia del reporte y le asignamos el DataSet que llenamos en la consulta anterior

Código:
rptDates report = new rptDates();
report.SetDataSource(datesDataSet1);
Asignamos el Reporte a un CrystalReportViewer
crystalReportViewer1.ReportSource = report

Entonces como puedes ver por ningún lado se le asigno una conexión, solo se le asignan los datos que debe de mostrar.

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #3 (permalink)  
Antiguo 21/07/2011, 16:30
 
Fecha de Ingreso: junio-2008
Mensajes: 54
Antigüedad: 16 años, 4 meses
Puntos: 19
Información Crystal report y VS2010

Lo que comenta jhonwilliams esta muy bien.

En la siguiente liga hay varios video que te pueden ayudar a crear reportes usando Crystal y VS2010:

[URL="https://skydrive.live.com/?cid=62ff6cb77ed33cbf"]https://skydrive.live.com/?cid=62ff6cb77ed33cbf[/URL]

Busca en la carpeta Publico\CrystalReports.

Y recuerda, puedes crear el reporte usando una Base de datos local (en tu equipo de trabajo), pero cuando el usuario ejecute el Reporte, usa el Dataset para pasarle la información deseada.
  #4 (permalink)  
Antiguo 21/07/2011, 16:47
Avatar de HaverRamirez  
Fecha de Ingreso: junio-2011
Ubicación: Guatemala
Mensajes: 273
Antigüedad: 13 años, 4 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

Etiquetas: crystal
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

SíEste tema le ha gustado a 3 personas




La zona horaria es GMT -6. Ahora son las 14:24.