Reportes con Crystal Reports

Comencemos, lo primero abrimos nuestro VS y creamos un nuevo proyecto de C# que le daremos el nombre de “MyFirstReport”, después agregaremos un elemento nuevo del tipo “Crystal Report”, y le ponemos el nombre “rptHeader”:

Después se nos abrirá una nueva pantalla donde se nos preguntara como deseamos crear el reporte, en nuestro elegiremos reporte en blanco y nos quedara de la siguiente manera:
Después procedemos a agregar otro elemento nuevo, que es un archivo XML (esta manera de hacer reportes es muy reusable, lo cual nos permite llevar nuestros reportes a cualquier otra aplicación sin mucho lio), que tendrá el nombre “dtReportInfo”:
Ahora en el archivo XML escribimos lo siguiente:
xml version="1.0" standalone="yes"?>
<NewDataSet>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true"
msdata:MainDataTable="dtReportInfo" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="dtReportInfo">
<xs:complexType>
<xs:sequence>
<xs:element name="HdrCompañia" type="xs:string" minOccurs="0" />
<xs:element name="HdrTituloReporte" type="xs:string" minOccurs="0" />
<xs:element name="HdrSubtitulo1" type="xs:string" minOccurs="0" />
<xs:element name="HdrSubtitulo2" type="xs:string" minOccurs="0" />
<xs:element name="UserID" type="xs:string" minOccurs="0" />
<xs:element name="FtrEjecutadoPor" type="xs:string" minOccurs="0" />
<xs:element name="FtrVersion" type="xs:string" minOccurs="0" />
<xs:element name="FtrNotasPie" type="xs:string" minOccurs="0" />
<xs:element name="FtrDataSource" type="xs:string" minOccurs="0" />
xs:sequence>
xs:complexType>
xs:element>
xs:choice>
xs:complexType>
xs:element>
xs:schema>
<dtReportInfo>
<HdrCompañia>Video Club ISIHdrCompañia>
<HdrTituloReporte>Reporte de Videos DisponiblesHdrTituloReporte>
<HdrSubtitulo1>Validez: 11/07/2009 to 11/08/2009HdrSubtitulo1>
<HdrSubtitulo2 />
<UserID>User 001UserID>
<FtrEjecutadoPor>Ejecutado por AlguienFtrEjecutadoPor>
<FtrVersion>Version 1.01FtrVersion>
<FtrNotasPie>
Este reporte muestra los distintos videos que estan disponibles dentro del
video club.
FtrNotasPie>
<FtrDataSource>Source: BDVideoClub DatabaseFtrDataSource>
dtReportInfo>
NewDataSet>
Después de crear y llenar el archivo XML procedemos a enlazar este con el reporte, para hacer esto deberemos de volver al archivo correspondiente al reporte, en el are de trabajo le damos click derecho y se nos desplegara un menú contextual, ahí nos iremos al campo Base de Datos y ahí elegiremos el submenú “Asistente de Base de Datos” y nos aparecerá la siguiente pantalla:
Cuando hagamos click en ADO.NET se nos desplegara la siguiente pantalla:


El campo ruta del archivo corresponde a la ubicación del archivo XML que creamos hace unos momentos, despues de ubicar al archivo, hacemos en Finalizar,el nuevo DataSet se nos hara visible y deberemos de agregarlo a datos del proyecto seleccionandolo y dandole click al boton “>>” , ahora se mostrara el nuevo DataSet de la siguiente manera:
Después le damos clic al botón Aceptar y ahora a mano derecha nos aparecerán los campos que creamos en el documento XML:
Ahora procedemos a arrastrar los campos al reporte y los depositamos en el lugar que creamos adecuado, si todo nos salió bien quedara asi:
Ahora deberemos de crear el pie de pagina, el procedimiento es el mismo que hicimos para el anterior(Header), añadiremos un nuevo reporte y le daremos el nombre “rptFooter”, después elegiremos el tipo de reporte en blanco, seguido a esto abriremos el asistente de base de datos y nos iremos al campo ADO.NET, ahí ya estará nuestro archivo XML, lo único que hacemos es seleccionarlo y pulsar el botón ”>>” y luego “Aceptar”, ahora lo único que nos queda es arrastrar los campos que nos faltan, si me están siguiendo todo quedara así:

Luego creamos un nuevo reporte llamado “rptBase” y al igual que los anteriores lo creamos en blanco, después procedemos a hacer clic derecho en la seccion1 e insertamos un sub-Informe:
Elegimos “rptHeader” y luego aceptar, después procedemos de la siguiente manera en la seccion5 , pero esta vez elegiremos “rptFooter”, ahora ya está nuestro encabezado y nuestro pie de pagina solo nos faltan los datos, para lo cual nos vamos a la sección 3 y elegimos el asistente de base de datos, ahí nos iremos a nueva conexión, pero esta vez elegiremos OLE DB y el controlador para SQL Server:
Después llenaremos el formulario de conexión de la siguiente manera:
Seguido a llenar los datos procedemos a hacer clic en el botón finalizar, ahora en el asistente procedemos a seleccionar la tabla video y agregarla a nuestro explorador de campos:
Si todo salió bien en el administrador de campos podremos visualizar los campos de la tabla Video:
Ahora solo nos queda arrastrar los campos al reporte en la sección 3, ahora para finalizar deberemos de conectar nuestra aplicación con los reportes, para lo cual haremos de lo siguiente:
1.- Agregar el control CrystalReportViewer
2.- Elegir el reporte que mostrara
Para lo primero no hace falta explicación ya que es solo arrastrar un control desde la barra de herramientas al form, ahora para el punto dos, nos dirigiremos a la pequeña flecha que existe en la parte superior de el control y elegiremos la opción “Elegir reporte de CrystalReport”:
Nosotros elegiremos el primero “rptBase” y listo el reporte ya está funcionando:
Espero que les sirva de ayuda para poder hacer sus trabajos =).
Bye

Comentarios

Entradas populares de este blog

Conectarse a un Web Service en PHP con WPF

Ejecutar comandos en el CMD de Windows desde C#

Usar Log4Net en un proyecto ASP.NET MVC