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

Problemas con Crystal Report y Sql Server 2005

Estas en el tema de Problemas con Crystal Report y Sql Server 2005 en el foro de .NET en Foros del Web. A ver si alguien me puede echar un cable, ya que no encuentro la forma de generar un informe con Crystal Report accediendo desde Visual ...
  #1 (permalink)  
Antiguo 06/05/2007, 08:33
Avatar de jabi  
Fecha de Ingreso: noviembre-2006
Mensajes: 120
Antigüedad: 17 años, 6 meses
Puntos: 1
Problemas con Crystal Report y Sql Server 2005

A ver si alguien me puede echar un cable, ya que no encuentro la forma de generar un informe con Crystal Report accediendo desde Visual Studio 2005 a una base de datos que tengo con Sql Server 2005.

Para empezar la conexión está hecha perfectamente desde el Visual Studio 2005 ya que he realizado pruebas y logro acceder a campos de la única tabla que tengo sin ningún problema.

El asunto está cuando voy a seleccionar los campos que quiero mostrar en el informe, una vez creado el CrystalReport1.rpt voy al asistente de bases de datos, pinchando aquí:



Y después en la ventana que aparece selecciono la tabla donde tengo los datos:



Realmente no sé si ésto lo debería hacer así o debería crear una nueva conexión (última opción), ¿quizás éste sea el problema?

El caso es que una vez hecho ésto todo parece ir bien porque ya me aparecen los campos a la izquierda y puedo manejarlos con el diseñador:



Sin embargo al mostrar el informe en un CrystalReportViewer me aparece todo en blanco, excepto los títulos de las columnas:



¿Cómo puedo solucionarlo?

Un saludo y muchísimas gracias de antemano a quien me pueda ayudar.
__________________
No estoy aquí de vacaciones, creéme.

Última edición por jabi; 06/05/2007 a las 08:39
  #2 (permalink)  
Antiguo 08/05/2007, 08:51
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
Re: Problemas con Crystal Report y Sql Server 2005

Ahora te falta el código compañero.
A través de código, en algún punto, tedrás que hacer la selección de registros de la base de datos y meterlos en un dataset del tipo "MusicaJavi.MiMusicaDataSet".
Luego será ese dataset el que pasarás como fuente de datos a tu reporte, que lo has diseñado a partir de una fuente de datos como la que le estás pasando...
Bueno, espero haberte aclarado algo y no haberte liado más.
Un saludo.
__________________
..:: moNTeZIon ::..
  #3 (permalink)  
Antiguo 08/05/2007, 13:04
Avatar de jabi  
Fecha de Ingreso: noviembre-2006
Mensajes: 120
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: Problemas con Crystal Report y Sql Server 2005

Muchas gracias moNTeZIon por contestar.

Realmente soy aún principiante en ésto (empecé hace 2 semanas con informes) y no me he enterado de lo que me comentas como debería (o eso creo ^^) Mis disculpas.

El problema que veo es que no sé donde colocar la consulta para mostrar los datos que necesito, en Access y concretamente en la 2ª imagen que muestro, me aparece abajo al pinchar en "Crear nueva conexión" una opción llamada 'Añadir comando' que es donde puedo realizar la consulta con Select y que me devuelve después los campos que necesito para el informe. Pero con Sql Server no sabría que opción elegir entre todas éstas:



La 1ª es para Access, en la 2ª aparece mi DataSet (pero entiendo que esto no me vale), pero en ningún sitio me aparece nada de Sql Server, y al no poder establecer esa conexión tampoco aparece el ya comentado 'Añadir comando'.

Espero no haberlo líado yo tampoco, ¿tanta diferencia hay entre conectar Crystal Report a una BD u otra? Con Access me resulto facilísimo, pero me gustaría conseguirlo con Sql Server.

Un saludo y gracias de nuevo.
__________________
No estoy aquí de vacaciones, creéme.
  #4 (permalink)  
Antiguo 10/05/2007, 01:57
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
Re: Problemas con Crystal Report y Sql Server 2005

Hola Jabi.
Cita:
Iniciado por jabi Ver Mensaje
¿tanta diferencia hay entre conectar Crystal Report a una BD u otra?
Realmente, si como fuente de datos utilizas un dataset tipado, no hay ninguna diferencia entre bases de datos, puesto que la fuente de datos es tu dataset, sea de donde sea que vienen sus datos.
El código que puedes utilizar justo antes de cargar el reporte sería algo así:
Código:
Dim strReportPath As String = (Ruta del fichero *.rpt)
If Not IO.File.Exists(strReportPath) Then Throw (New Exception("No se encuentra el archivo:" & vbCrLf & strReportPath))
Dim dS As MiDataSet = (Método que devuelva el DataSet con los registros que deseas)
Dim rptDocument As New CrystalDecisions.CrystalReports.Engine.ReportDocument
rptDocument.Load(strReportPath)
rptDocument.SetDataSource(dS)
CrystalReportViewer1.ReportSource = rptDocument
A ver si hay suerte.
Un saludo.
__________________
..:: moNTeZIon ::..
  #5 (permalink)  
Antiguo 10/05/2007, 10:18
Avatar de jabi  
Fecha de Ingreso: noviembre-2006
Mensajes: 120
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: Problemas con Crystal Report y Sql Server 2005

Buenas de nuevo:

Lo he intentado como me has indicado pero lamentablemente sigo con mi informe vacío. He puesto el código en el procedimiento Form1_Load de mi formulario, eso sí aplicado a C# que es lenguaje que utilizo, me ha quedado algo así:

Código:
private void Form1_Load(object sender, EventArgs e)
        {
            string rutaInforme = @"F:\MisPruebas Programacion\conectarasqlserverdesdeCR\conectarasqlserverdesdeCR\CrystalReport1.rpt";

            MusikaDataSet dS = new MusikaDataSet();
            CrystalDecisions.CrystalReports.Engine.ReportDocument informe = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
            informe.Load(rutaInforme);
            informe.SetDataSource(dS);
            crystalReportViewer1.ReportSource = informe;
        } 
La línea que me plantea dudas es la que he marcado en negrita, ya que al contrario de lo que me indicas no utilizo ningún método para obtener los datos, instanciando directamente desde mi DataSet ya valdría, ¿no? ¿o a qué te refieres exactamente?

Muchísimas gracias por tu ayuda de nuevo
__________________
No estoy aquí de vacaciones, creéme.
  #6 (permalink)  
Antiguo 11/05/2007, 05:03
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
Re: Problemas con Crystal Report y Sql Server 2005

No, no valdría.
Una instanciación sirve para crear un objeto de ese tipo, pero luego hay que rellenarlo.
Dicho de otro modo, tienes una estructura de una tabla, pero sin datos.
Ahora te toca llenarlos.
Si no... Claro que está vacío!
Tienes que hacer la SELECT de los registros que quieres mostrar en algún momento.
Ánimo!
__________________
..:: moNTeZIon ::..
  #7 (permalink)  
Antiguo 11/05/2007, 17:01
Avatar de jabi  
Fecha de Ingreso: noviembre-2006
Mensajes: 120
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: Problemas con Crystal Report y Sql Server 2005

Buenas otra vez, siento darte tanto la lata moNTeZIon pero aún sigo sin ver nada en el informe, he rellenado el DataSet dS como bien me has indicado (tontísimo de mi) pero sin éxito:

Código:
        private void Form1_Load(object sender, EventArgs e)
        {
            //Conexión:
            string strconexion = @"Data Source=JAVI-63D7FA2596;Initial Catalog=Musika;Integrated Security=True";

            MusikaDataSet dS = new MusikaDataSet();

            SqlConnection conexion = new SqlConnection(strconexion);
            SqlCommand consulta = new SqlCommand("SELECT * FROM diskitos", conexion);
            SqlDataAdapter adaptador = new SqlDataAdapter(consulta);
            adaptador.Fill(dS);

            //Envío de datos al informe:
            string rutaInforme = @"F:\MisPruebas Programacion\conectarasqlserverdesdeCR\conectarasqlserverdesdeCR\CrystalReport1.rpt";

            CrystalDecisions.CrystalReports.Engine.ReportDocument informe = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
            informe.Load(rutaInforme);
            informe.SetDataSource(dS);
            crystalReportViewer1.ReportSource = informe;
        }
En el diseño del informe y después de haber hecho ésto, ¿no debería indicarle al informe de dónde extraer los datos? Supongo que debería recogerlos del DataSet dS ya creado, pero ¿cómo le indico ésto?

Un saludo y de nuevo gracias por la paciencia.
__________________
No estoy aquí de vacaciones, creéme.
  #8 (permalink)  
Antiguo 11/05/2007, 17:24
Avatar de jabi  
Fecha de Ingreso: noviembre-2006
Mensajes: 120
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: Problemas con Crystal Report y Sql Server 2005

Vaya vaya, si es que no se pueden hacer las cosas deprisa y corriendo, me faltó poner en el método Fill el nombre de la tabla de origen ^^

Con ésto:
Código:
adaptador.Fill(dS, "diskitos");
...todo solucionado, el informe por fin me muestra lo que quería.

Muchísimas gracias por todo moNTeZIon!!
__________________
No estoy aquí de vacaciones, creéme.
  #9 (permalink)  
Antiguo 14/06/2007, 08:45
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
Re: Problemas con Crystal Report y Sql Server 2005

Ei jabi!
Había perdido el hilo de este post..
Me alegra que lo hayas conseguido!
Un saludo
__________________
..:: moNTeZIon ::..
  #10 (permalink)  
Antiguo 04/07/2007, 04:24
 
Fecha de Ingreso: julio-2007
Mensajes: 1
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Problemas con Crystal Report y Sql Server 2005

Hola jabi, queria saber si me podrías explicar los pasos que has seguido para conectar la base de datos creada mediante sql server con el explorador de campos de crystal reports.
Los pasos que yo realizo són:
1-Con el asistente de base de datos del crystal reports, elijo la opción OLE DB (ADO), y posteriormente como proveedor elijo microsoft OLE DB provider for sql server.
2-Como servidor le introduzco KOGOLLET\SQLSERVEREXPRESS, tal cual lo indica en las propiedades de la base de datos.
3-Como id de usuario KOGOLLET\Joan
4-Base de datos "electron".
5-Como contraseña no he puesto nada ya que la base de datos la creé con autenticación de inicio de windows, y en windows no tengo contraseña.

Realizando todos éstos pasos, me da error de conenxión 42000, o sea, que no se puede conectar con la base de datos.
Otra pregunta es si he de crear una conexión mediante las herramientas de administraón->Orígenes de datos (ODBC) de dicha base de datos.
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 11:47.