
Pasos BASICOS para hacer tu PRIMER Crystal Report.
Pues bien, veamos cuales son los pasos básicos para generar nuestro primer reporte de Crystal Reports. Para este ejemplos los datos a utilizar en el reporte son escritos manualmente, pero la idea es solo poner datos en la tabla, para una aplicación mas real, no importa si los datos lo obtienes de capturas de usuario o de alguna base de datos. En la segunda versión de este tutorial, profundizaremos un poco mas en esos aspectos.
- Lo primero que debemos hacer es agregar a nuestro proyecto un DATASET con el nombre de Datos.

- Después de agregar el nuevo elemento, automáticamente seremos direccionados al “editor” de Datasets, de la parte izq arrastramos una DataTable y le cambiamos el nombre a Tabla.
- Posteriormente presionamos botón derecho sobre la tabla y seleccionamos Add >> Column. Agregamos 3 columas de tal forma que nuestra tabla quede asi:

Pues bien, ya tenemos nuestro Dataset y nuestra tabla que tendrá los datos para nuestro reporte, ahora crearemos el reporte.
- Agreguemos nuevamente un nuevo elemento a nuestro proyecto, pero esta vez será un CrystalReport, y demosle el nombre de Reporte (haciendo un alarde de originalidad en el nombre
)
- Nos aparecerá un pequeño menu, seleccionemos OK, y en la siguiente ventana presionemos Finish. Esto debido a que no queremos ayuda para elegir los datos a mostrar. Para fines educativos, lo haremos “Como los hombres” (manualmente).
- Ahora estamos en el “Diseñador de Reportes”, en la parte izq, presionamos botón derecho sobre Database Fields y seleccionamos Database Expert…

- Del nuevo menu, expandemos Project Data >> ADO.NET DataSets y seleccionamos nuestra Tabla y la agregamos a la lista de Selectes Tables, para esto presionamos el botón con el simbolo “>“.
Al final tendremos algo asi:

- Presionamos OK. Ahora bajo DataBase Fields podremos ver las columnas que creamos para nuestra Tabla.
- Ahora solo tenemos que arrastrar cada una de las columnas hacia la Sección 3 (Details) que para fines prácticos, es donde se mostrará el cuerpo de nuestro reporte.
- Agregamos a nuestro proyecto un nuevo Windows Forms y le damos el nombre de VerReporte
- Al nuevo VerReporte le agregamos un componente CrystalReportViewier

Pasemos al Código.
- Agregamos el botón desde el cual generaremos nuestro reporte.
- En el evento del botón (doble clic sobre el nuevo botón) agregaremos el siguiente codigo
// Crear Objeto de Dataset
Datos DS = new Datos();
// Crear Objeto del visor de reportes
VerReporte VER;
//Agregar Datos a la(s) tabla(s) que nos interesa(n) del dataset
// En este caso llenare datos manualmente (SOLO PARA EJEMPLIFICAR)
DS.Tabla.Rows.Add("Sergio", "sergio@example.com", "123 44 55");
DS.Tabla.Rows.Add("Alberto", "Alberto@example.com", "123 44 55");
DS.Tabla.Rows.Add("Inzunza", "Inznuza@example.com", "123 44 55");
// Inicializar el visor de reportes y mandarle la tabla con los datos
VER = new VerReporte(DS.Tabla);
VER.ShowDialog();
- Finalmente, modificamos el codigo del constructor de la forma VerReporte para que se vea de la siguiente manera:
public VerReporte(DataTable DT)
{
InitializeComponent();
//Crear Objeto REPORTE
Reporte RP = new Reporte();
//Asignar datos al reporte
RP.SetDataSource(DT);
//Asignar reporte creado al visor de reportes
this.crystalReportViewer1.ReportSource = RP;
}
Por fin, ya todo esta listo para ejecutar nuestro código, presionar el botón y ver nuestro reporte de Crystal Reports.

Bajar el Proyecto para VS 2008
Muy buen tutorial =D. Espero que sigas subiendo mas tutoriales hacerca de Crystal Reports, tambien sobre como meter parametros a los reportes y tambien como hacer graficas.
Gracias, y si, seguire subiendo mas tutoriales, tan frecuente como me sea posible.
“stay in touch”.
Que buen tutorial eh! muy bien explicado, me sirvio mucho, esperamos el otro tutorial, ¡Felicidades!
Pingback: How To: Crystal Reports C# Auto-Agrupación de Datos « Sergio Inzunza
Hola, quiero felicitar al autor de este tutorial, de verdad es muy bueno, excelente diria yo, bien pulcro y claro, y con el proyecto de demo no quedo ninguna duda al respecto, mas sin embargo me gustaria saber como seria un reporte con parametros?, como haria para q en el reporte se visualicen los parametros de filtro que generaron un reporte…
saludos,
Hola Ing. Gabriel
Muchas gracias por tu comentario.
Y lo de los parametros, ya otras personas me lo han preguntado.
Pronto sacara la continuación para agregar esa parte.
Pasate por aquí en unos días y lo veras.
hay la verdad no llegue tan lejos xq no pude encontrarlo en c#
diganme xq? q ya tengo hr y encuntro lo mismo y no se como solucionarlo
a la hora de seleccionar la tabla aparece …no items found…
HOla ELIZABETH
Como es que no te aparece la Tabla, Si has agregado el DataSet al Proyecto, y dentro de el has creado una Tabla??
Disculpaa que te moleste… pero, puedes pasarme tu ejemplo, no lo puedo descargar…. no me sale y quiero guiarme de el… exelente trabajo
Hola. yo tambien quiero el proyecto. Quiero saber como agregas las consultas SQL a los reportes. Por favor me lo pueden pasar que tengo que implementar un Proyecto C#, Crystal Report 2008 y MySQl muchisisisimas Gracias por la ayuda
Hola no se si es por la version pero en .Net 2008 me aparece un error al ejecutar el programa en esta linea de codigo: Application.Run(new VerReporte());
Excelente ejemplo. Gracias!
Pueden vistar el siguiente link donde se explica como realizar un reporte con crystal report y c# y videos … Para que les complemente con la informacion brindada
http://hwongu.blogspot.com/2011/02/c-aplicacion-de-escritorio-sistemas-de_5944.html
No me salio
Que error tienes ??
Muchas gracias por este tutorial en verdad me sirvio demasiado te lo agradezco.
Muchisisisisisisisisimas Gracias me hiciste un parononoonononoononon Bien Grande viejo, muchos Thanks. Saludos desde Culiacan, Sinaloa, Mexico !!
Gracias, Yeah!! tmb soy de aya, pero radico en Tijuana
hey, muchas gracias, buenisimo, me ayudaste un 100%
hola, seria mucha molestia que me dieras una idea de como generar una factura y ponerla un un libro diario?, o sea, generar el libro diario??….tengo que rendir final para recibirme pero no nos enseñan ni el lenguaje ni la materia, me estoy volviendo loca!!!, quiero recibirme, tengo que ahcer un programa que genere factura A,B,Y,C, y libro diario y mayor, tambir iva compras e iva ventas y ensima no se nada de economia, tambien estoy tratando de aprender esa partes, en lo que me puedas ayudar, muchas gracias.
saludos
Buenas, Tengo un problema al realizar la impresion de mi reporte, siempre me pide los parametros del reporte y adicionalmente me pide le usuario y la contraseña del servidor. (Mi aplicacion es en Visual Basic 2010 con SQL Server 2008 y Crystal reports para Visual Studio 2010).
Este es mi codigo fuente del boton Imprimir.
Dim sdaReporte As New SqlDataAdapter
Dim dsReporte As New DataSet
Dim cr As New RptPagosEncabezado
sdaReporte.SelectCommand = New SqlCommand(“PRptSeguimientoPagos_Encabezado”, Cnn)
sdaReporte.SelectCommand.CommandType = CommandType.StoredProcedure
sdaReporte.SelectCommand.Parameters.Add(“@Id_Empresa”, SqlDbType.Int).Value = Id_Empresa
sdaReporte.SelectCommand.Parameters.Add(“@Id_SeguimientoVentas”, SqlDbType.Int).Value = Id_Seguimiento
sdaReporte.SelectCommand.Parameters.Add(“@Id_SeguimientoVentasProforma”, SqlDbType.Int).Value = Id_SeguimientoProforma
sdaReporte.SelectCommand.Parameters.Add(“@Id_SeguimientoVentasFactura”, SqlDbType.Int).Value = Id_SeguimientoFactura
sdaReporte.SelectCommand.Parameters.Add(“@Id_SeguimientoVentasPagos”, SqlDbType.Int).Value = Id_SeguimientoPago
Cnn.Open()
sdaReporte.Fill(dsReporte)
Cnn.Close()
‘ cr.ParameterFields.Clear()
cr.SetParameterValue(0, Id_Empresa)
cr.SetParameterValue(1, Id_Seguimiento)
cr.SetParameterValue(2, Id_SeguimientoProforma)
cr.SetParameterValue(3, Id_SeguimientoFactura)
cr.SetParameterValue(4, Id_SeguimientoPago)
cr.SetDataSource(dsReporte)
FrmReporte.Visor.ReportSource() = cr
FrmReporte.Text = “Seguimiento de Control de Pagos”
FrmReporte.WindowState = FormWindowState.Maximized
FrmReporte.Show()
FrmReporte.Refresh()
Simplemente cambia el orden en que asignas los parametros y los datos.
primero los datos y depues los parametros.
cr.SetDataSource(dsReporte)
cr.SetParameterValue(0, Id_Empresa)
cr.SetParameterValue(1, Id_Seguimiento)
cr.SetParameterValue(2, Id_SeguimientoProforma)
cr.SetParameterValue(3, Id_SeguimientoFactura)
cr.SetParameterValue(4, Id_SeguimientoPago)