Tutorial: Crystal Reports C# Básico


Crystal

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.

Picture 3

  • 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:

Picture 4

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 :D )Picture 5
  • 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…Picture 8
  • 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 “>“.

Picture 9Al final tendremos algo asi:

Picture 10

  • 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

Picture 2

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.

Fin

Bajar el Proyecto para VS 2008


Nota: Este sitio ya no tendra Actualizaciones de Post, para nuevos tutoriales dirigirse a http://elsotano.net/blog

23 thoughts on “Tutorial: Crystal Reports C# Básico

  1. 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.

  2. Pingback: How To: Crystal Reports C# Auto-Agrupación de Datos « Sergio Inzunza

  3. 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.

  4. 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

  5. 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());

  6. Muchisisisisisisisisimas Gracias me hiciste un parononoonononoononon Bien Grande viejo, muchos Thanks. Saludos desde Culiacan, Sinaloa, Mexico !!

  7. 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

  8. 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)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s