martes, 31 de julio de 2012

Creación de Reportes con Crystal Report con Visual Studio 2010 en Windows Form.


En esta ocasión crearemos un reporte en Windows Form con Crystal Report en Visual Studio 2010 y Net Framework 4. Como vimos en la entrada de instalación de Crystal Report para VS 2010, tenemos que instalar CR for VS 2010, aunque también podemos usar Visual Studio 2005 y 2008 sin instalar nada ya que por defecto CR está en estas ediciones. Código Fuente aquí
Para este ejemplo usaremos la base de datos Northwind en las tablas Productos y Categorías.
El reporte mostrara los productos agrupados por categoría además de un gráfico en forma de torta o circulo para mostrar cuantos productos existen por categoría.
image
Materiales
1.       Base de Datos Northwind
2.       Visual Studio 2010
Para realizar un reporte con Crystal Report tenemos muchas formas, usando clases, directamente con la base de datos usando tablas o vistas y usando DataSet tipados. Esta será la forma que usaremos para generar el reporte.
Materiales
1.       Base de Datos Northwind
2.       Visual Studio 2010
Para realizar un reporte con Crystal Report tenemos muchas formas, usando clases, directamente con la base de datos usando tablas o vistas y usando DataSet tipados. Esta será la forma que usaremos para generar el reporte.
Creamos un nuevo Proyecto de Windows form con Net 4.0
Por defecto VS 2010 ejecuta el proyecto con Net Framework 4 Client Profile, esto se debe a que el Framework es muy grande y muchas veces no usamos todo el potencial asi que podemos recurrir al Net Framework 4 Client Profile ya que este es una versión reducida del .Net Framework 4 y por ende más fácil de trasportar y de instalar ya que no usa todas la librerías y nuestra aplicación puede ser más liviana para la instalación.
Pero si queremos usar Crystal Report no podemos usar la versión Reducida de .Net Framework 4 asi que nos vamos al MenúàProyectoàPropiedades del Proyecto. Y cambiamos de Motor de Ejecución a .Net Framework 4, Para poder usar CR for VS 2010
image
Creando el Data Set
Crearemos el data set a partir de la base de datos. Para poder realizar esto primero vamos a Explorador de Servidores en cual es muy útil para manejar un servidor de base de datos en este caso SQL SERVER 2008.
Para poder visualizar el explorador de servidores en el Menú VeràExplorador de Servidores o (Ctrl+Alt+S).
Luego presionamos conectar con base de datos y conectamos con la base de datos Northwind
image
Una vez conectada la base de datos podemos ver las tablas que esta BD contiene.
image
Ahora agregamos un Data Set a nuestro proyecto.
image
Colocamos el nombre de dsProductoPorCategoria.xsd. Arrastramos la tabla para que el reporte pueda usarlo como fuente de datos.
image
La relación se construirá automáticamente con esta estructura definida el reporte podrá tomar los datos y ordenarlos de forma que podamos agrupar los productos por categorías.
Creamos el Reporte
Para crear el reportes usaremos el asistente el cual nos permitirá elegir entre varias opciones la más adecuada para nuestro reporte.
Agregamos el reporte de Crystal Report
image

Cuando agregamos el reporte usaremos el asistente de informe para ayudarnos en la configuración del reporte.
image
Elegimos la conexión del reporte del cual tomara la estructura para definir el informe, para este paso solo tenemos que elegir el data set tipado que construimos anteriormente
image
Vemos la tablas relacionadas y damos siguiente
image
Seleccionamos los campos a mostrar esto es importante ya que si elegimos muchos campos nuestro informe se verá mu llenos y eso puede provocar que el informe no sea tan legible, así que solo tenemos que usar los campos que realmente necesitemos.
image
Ahora podemos agrupar los datos del informe esto es opcional pero como deseamos tener un informe que muestre los productos por categoría debemos agrupar los datos por la categoría.
image
Luego también podemos insertar a nuestro informe campos de resúmenes (opcional). En estos campos de resumen, indicaremos que calcule el promedio de precios de una categoría y la sumatoria del stock de los productos de esa categoría.
image
En esta sección podemos ordenar por los grupos superiores o inferiores pero por defecto elegimos ninguno.
image
Agregamos el grafico al reporte (grafico circular o de torta)
image
Si deseamos realizar una sub agrupación podemos seleccionar en esta ventana pero para nuestro caso es innecesario.
image
Finalmente nuestro informe está concluido.
image
Si requerimos colocar el informe al último del informe podemos hacerlo con solo arrastra el grafico a la parte inferior de la sección pie de informe (Section 4).
Pero nuestro trabajo no termina ahí tenemos que agregar un visor del reporte al formulario Windows Form.
image
Poblar el Reporte
Ahora que tenemos definida la estructura y tenemos el visor de informe. Esto no significa que el reporte esté listo ya que el reporte por si solo aun no está lleno, si bien usamos el data set para definir la estructura del reporte este dataset no está lleno. Ahora toca llenar el data set con los datos de la base de datos.
Creamos el método PoblarReporte el cual llena el data set con las sentencias SQL que se requieran, como tenemos que llenar dos tablas usaremos dos distintos DataAdpters.
2011-04-15 01h35_08
Ahora llamamos este método en el evento Load del formulario.
image
Finalmente ejecutamos el reporte y vemos como nuestro reporte se generado con éxito.
image
Nota Importante para la ejecución en VS 2010.
Cuando creamos de esta manera el reporte en VS 2010 tendría que agregar automáticamente las librerías necesarias, además configurar el App.Config de manera que la ejecución resulte exitosa. Pero por alguna razón en algunos  VS 2010 no configura de manera correcta el App.config y nuestro reporte no se ejecuta, en otros no existe el problema. Estuve probando en diferentes VS 2010 sobre todo ultimate pero me sale un error, en otros no y todo es normal, tal vez sea porque algunos PC eran de X64 y otros de X32 pero, no hay problema si tenemos este error de ejecución el cual indica que no podemos compilar porque no se reconoce las librerías de CR.
image
Para que se ejecute de manera correcta solo tenemos que configurar el App.Config, agregando esta línea.
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>

 Y comentando  la línea
<!–<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>–>

Quedando el App.config como sigue:
image
Con esto ya se ejecuta nuestro reporte.
Código Fuente
El código fuente del proyecto con PDF del Articulo mas la base de datos aquí

No hay comentarios:

Publicar un comentario