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

Llenar Reporte crystal report con una variable de tipo Dataset

Estas en el tema de Llenar Reporte crystal report con una variable de tipo Dataset en el foro de .NET en Foros del Web. Hola tengo una aplicacion donde lleno una variable de tipo dataset unos datos Luego quiero enviar esos datos del dataset al reporte hay una forma ...
  #1 (permalink)  
Antiguo 18/06/2005, 23:04
Avatar de OYEME  
Fecha de Ingreso: marzo-2004
Ubicación: Lima
Mensajes: 307
Antigüedad: 20 años, 1 mes
Puntos: 1
Llenar Reporte crystal report con una variable de tipo Dataset

Hola tengo una aplicacion donde lleno una variable de tipo dataset unos datos
Luego quiero enviar esos datos del dataset al reporte hay una forma de hacer eso
algunos dicen crear un xsd del datagrid pero como se hace eso
alguien me pdoria ayudar
AHora como creo el reporte, que campos pongo, de que tabla, si supuestamente el reporte va recibir lo del dataset
ayudenme please he buscado en el foro y veo que mucha gente pregunta lo mismo pero no hay respuesta
mi aplicacion es en vb net
__________________
http://www.luisariashidalgo.com
  #2 (permalink)  
Antiguo 27/06/2005, 10:07
 
Fecha de Ingreso: mayo-2005
Mensajes: 122
Antigüedad: 18 años, 11 meses
Puntos: 0
Respuesta

A ver no se si alguna vez habrás creado formularios en Access, pero se trata de lo siguiente. Añadiendo un crystal report en tu aplicación, verás que en un principio está todo en blanco. Entonces tienes que elegir el origen de datos, imaginemos que queremos sacar todas las marcas de vehículos de la tabla "MARCAS_VEHICULOS"

Hay una opción para seleccionar el origen de datos, y evidentemente otra opción para ejecutar un sql, pues bién en la parte donde se debe poner el sql, ponemos lo siguiente:

SELECT * FROM MARCAS_VEHICULOS

Y aceptamos. Automáticamente te habrá creado una lista de campos correspondiente a todos los campos que tiene esta tabla en la base de datos. Pues bién, ahora solo queda arrastrarlos al formulario del crystal report, así de sencillo. Si ahora con objeto para mostrar los crystal, lo mostraras, verías que te saldrían todos los registros que tiene esta tabla en la base de datos. Esto es porqué hemos hecho SELECT * ....

Pues bién si lo que quieres es vincular un dataset con unos datos en concreto que hayas obtenido con un sql, como por ejemplo SELECT * FROM MARCAS_VEHICULOS WHERE MARCA = 'SEAT', por decir algo, entonces tienes que hacer lo siguiente:


informe.SetDataSource(ds.Tables("Marcas"))

Suponiendo que el control crystal report añadido se llame informe, y que la tabla del dataset donde has leído los datos con el sql se llame "Marcas" , haciendo lo que te he puesto anteriormente, y luego mostrando el report, ya te saldrían todos los vehículos con marca 'SEAT'

Igualmente este es un pequeño ejemplo, pero no te puedo poner aquí todo lo que tienes que hacer para que te quede de muerte. Te recomiendo que busques por Internet mas cosas sobre crystal reports.

Un saludo.
  #3 (permalink)  
Antiguo 27/06/2005, 15:26
 
Fecha de Ingreso: junio-2005
Mensajes: 6
Antigüedad: 18 años, 9 meses
Puntos: 1
Hola.

Acabo de suscribirme a este foro, y leí tu problema con el Crystal Report, eso lo he hecho muchas veces, pero dime si todavía te interesa, me envias un email y te explico entonces.

Saludos
Deulis
  #4 (permalink)  
Antiguo 27/06/2005, 15:51
Avatar de OYEME  
Fecha de Ingreso: marzo-2004
Ubicación: Lima
Mensajes: 307
Antigüedad: 20 años, 1 mes
Puntos: 1
hola Jmcc gracias por la ayuda se algo de crystal report pero mi duda era que queria sacar el reporte asi como lo hacie el datareport del vb6 que se enviaban los valores desde le formulario y los campos eran No enlazados de un recordset temporal
de la forma que tu dices se tiene que crear un origen de datos aunque igual sale ya que se le envia el dataset desde el vb net y actualiza los datos del reporte
mi duda era si se puede enviar por decir de un datatable al crystla eso se puede???
Bueno en VB6 yo creaba un reporte con campos no enlazados osea no escogia un origen de datos y los enviaba desde el form ,para eso usaba la propiedad database.command o algo asime imagino que con net podre hacer lo mismo
gracias por tu tiempo de todas maneras
__________________
http://www.luisariashidalgo.com
  #5 (permalink)  
Antiguo 28/06/2005, 04:17
 
Fecha de Ingreso: mayo-2005
Mensajes: 122
Antigüedad: 18 años, 11 meses
Puntos: 0
Mas ...

Pues de la manera que lo hacías tu yo nunca lo he hecho. Pero supongo que podrás vincular los datos con un datatable. Seguro que sí.
  #6 (permalink)  
Antiguo 28/06/2005, 09:04
 
Fecha de Ingreso: junio-2005
Mensajes: 6
Antigüedad: 18 años, 9 meses
Puntos: 1
Hola, voy a decirles como lo hago en dos pasos que si bien parece dificil a primera vista luego verás que es fácil.

1- Crear el Reporte
En el diseño del rpt se necesita una fuente de datos desde la cual arrastrar los campos. Generalmente lo que hago es crear un nuevo DataSet en el proyecto (En el Solution Explorer - clic derecho sobre el proyecto - Add New Item - DataSet) Luego en ese DataSet del proyecto adiciono la tabla que voy a utilizar en el reporte (o la creo a mano) . Luego de esto ya tengo una fuente de datos para poder hacer el reporte. Adiciono un nuevo reporte, ya en el diseño del reporte, en el Fields Explore, clic drecho en Database Fields - Add/Remove Database. En esa opción escojo como fuente de datos el dataset del proyecto que ya cree para lo cual expando Project Data, expando ADO.NET Dataset y ahi estará el DataSet del proyecto que se ha creado, expande este DataSet y escoje la tabla que desees. Asi ya tendrás datos para arrastrar al Reporte.


2-Llamar al reporte pasandole un DataSet
Para llamarlo es necesario el control ReportViwer el cual va a contener al reporte, para lo cual tienes que crear un objeto del tipo ReportDocument al cual le tendrás que decir donde está el fichero .rpt y le tendrás que pasar los Datos y finalmente este Objeto pasarselo al ReportViwer.
Aqui te pongo el código:


//Aqui supongo que tengas un DataSet que se llame ds y que ya esté llenado con los datos de la tabla que desees y que hayas puesto en la página un objeto CrystalReportViewer llamado visor.

//Crear un objeto ReportDocument
ReportDocument rpt = new ReportDocument();

//Cargar el Reporte
rpt.Load("Ruta del Reporte");

//Asignarle al Reporte el DataSet
rpt.SetDataSource(ds);

//Asignarle al CrystalReportViewer el ReportDocument
visor.ReportSource = rpt;


Disculpame por dos cosas: Por poner los nombres en de los menues en Ingles (porque a pesar de que estoy en Cuba tengo el VS.NET en Ingles) y tambien disculpame por poner el codigo en C# y no en VB, (es que trabajo en C# aunque los objetos son los mismos)

Espero esto te sea útil.

Saludos
Deulis
  #7 (permalink)  
Antiguo 30/06/2005, 20:39
Avatar de OYEME  
Fecha de Ingreso: marzo-2004
Ubicación: Lima
Mensajes: 307
Antigüedad: 20 años, 1 mes
Puntos: 1
claro que es util asi aprendemos todos
__________________
http://www.luisariashidalgo.com
  #8 (permalink)  
Antiguo 01/07/2005, 09:57
 
Fecha de Ingreso: octubre-2004
Mensajes: 211
Antigüedad: 19 años, 6 meses
Puntos: 2
Buena explicacion deulis :) mejor ponerla en el foro y no decirlo por correo, asi nos enteramos todos, como dice OYEME

un saludo
  #9 (permalink)  
Antiguo 15/12/2009, 13:28
 
Fecha de Ingreso: diciembre-2009
Mensajes: 2
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Llenar Reporte crystal report con una variable de tipo Dataset

Cita:
Iniciado por Foskiton Ver Mensaje
Buena explicacion deulis :) mejor ponerla en el foro y no decirlo por correo, asi nos enteramos todos, como dice OYEME

un saludo
please necesito una ayuda con mi reporte
alguien me puede responder para explicarle lo q tengo q hacer
el reporte se carga con los datos del form sin ir a la base de datos pero necesito crear un cuadrito especie de una matriz en el reporte
pero no he podido alguien puede auxiliarme
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 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 01:50.