miércoles, 25 de enero de 2012

Hacer Crystal Report con DataSet en Visual Basic.NET


Hola amigos, hoy les traigo aquí una forma bien sencilla de hacer reportes con crystal report en Visual Basic, la forma que utilizaré no es la más óptima pero en las diferentes formas que he hecho reportes con Crystal Reports si es la que más facilidad me ha dado.
Como ya les dije la forma que utilizo no es la más óptima debido a que utilizo métodos algo pesados para traer los datos, espero en el futuro hacer un post más en la que lo haga con procedimientos almacenados o alguna otra forma más eficaz que la que pondré a continuación.
Lo siguiente sirve en muchos casos para proyectos pequeños de la universidad, a pesar de que utlizaré Visual Studio 2008 esto sirve muy bien para Visual Studio 2005 también, asi que comencemos:
1.- Procederé a crear un proyecto en Visual Basic 2008, con el Framework 2.0, y le pondré de nombre EjemploReporteCrystal, obviamente si ya tienen el proyecto creado no deben de hacerlo.
Crystal1
2.- Después lo que hacemos es insertar un DataSet de nuestra base de datos, si no sabes como hacerlo da clic aquí.
Crystal2
3.- Luego de eso agregamos un nuevo elemento, para esto damos clic derecho en nuestro proyecto –> Agregar –> Nuevo Elemento. Crystal3
4.- Tendremos un formulario como el siguiente en donde escogeremos la opción de la izquierda, seleccionamos Reporting –> Seleccionamos ahora Crystal Report –> Le ponemos un nombre –> y damos clic en Adjuntar.
Crystal4
5.- Ahora lo que veremos será un wizard o ayudante que nos permitirá crear un reporte de manera sencilla, deberán entonces de ver una imagen como la siguiente y darle clic en ok. Dejen las opciones tal como las tengo en mi imagen.
Crystal5
6.- Lo siguiente es escoger de donde sacaremos los datos que mostraremos, para esto en la siguiente pantalla que se les mostrará que deberá ser como la imagen que coloco abajo, ustedes deberán escoger Datos del Proyecto –> ADO.NET DataSets –> EjemploReporteCrystal.BD_EjemploProcedimientosDataSet (Este es mi dataset que puse enante, entonces aquí colocan el de ustedes) –> y escogen las tablas que utilizarán en su reporte, en mi caso escogí 2, ya que utilizaré datos de las 2 tablas –> Presionamos el boton “>” para cada tabla que queramos utilizar en el reporte y una vez hecho esto damos en siguiente.
Crystal6
7.- En la siguiente pantalla veremos como están relacionadas las tablas, no hay practicamente nada que explicar asi que damos clic en siguiente.
Crystal7
8.- Ahora en esta pantalla siguiente si hay que poner asunto, porque es aquí en donde diremos que campos de que tablas y en qué lugar los queremos en nuestro reporte, entonces vemos como tengo mis 2 tablas y escojo los datos que necesito de las 2, sin preocuparme de como estén relacionadas ni nada por el estilo, como ven en esta parte lo que hago es darle sentido a la forma de presentar mis datos.
Crystal8
9.- Luego de esto vendrán ciertas opciones como la que utilizaré a continuación que es de agrupar los datos en un cierto orden, y la forma que escogi de agruparlos es por géneros iguales, esto lo hago especificando en la parte de agrupamiento qué campo es el que quiero agrupar.
Crystal9
10.- Lo que sigue son más opciones como les dije, pero en este momento yo ya le di en finalizar, ya que no necesito hacerle más cosas a mi reporte, por ahora. Luego de dar clic en finalizar tendré una imagen como la que está abajo, la parte que tengo tachada es una parte que no quiero mostrar en ejecución por tanto para ocultarlas les damos clic derecho en la parte gris y al desplegarse un menú de opciones seleccionamos ocultar.
Crystal10
11.- Bien ahora regresamos y abrimos nuestro form, y buscamos nuestro origen de datos, si no lo vemos por ahi, damos clic en el menú de Visual Studio en la opción de Datos –> Seleccionamos ver Origenes de Datos y listo, tendrán que poder ver su dataset con las tablas al lado como en la imagen. Pero bueno lo que debemos hacer con esto es arrastrar esas 2 tablas a mi formulario, y esto para qué es? pues es para colocar esos controles que ven abajo junto con el dataset que están encerrados en el rectángulo verde, son controles que ya vienen cargados con datos necesarios y que no tendremos que ponerlos nosotros, por ejemplo ruta de la base de datos o metodos de conexión y desconexión, etc.
Crystal11
12.- Después de poner esas tablas las sacamos junto con la barra que se pone en la parte superior, y deberá quedarnos tener algo como lo que sigue.
Crystal12
13.- Luego de lo que hicimos vamos a la caja de herramientas y buscamos un control llamado CrystalReportViewer, lo arrastramos y colocamos en el formulario, este control será el que nos permita vizualizar nuestro reporte hecho anteriormente.
Crystal13
14.- Entonces una vez hecho esto damos doble clic en el borde del form para entrar al metodo load del mismo y poner el codigo que sigue a continuación. Aclarando un poco sobre ese código, lo que hacen las 2 primeras líneas es filtrar los datos de las tablas indistintamente si están relacionadas, las otras 3 líneas sirven para cargar nuestro reporte en el reportviewer que pusimos en el form, para esto cree un objeto llamado rpt del reporte(), que fue mi reporte que creamos hace rato, y en su propiedad SetDataSource le envie el dataset del proyecto que obviamente ya tiene los datos filtrado gracias a las 2 líneas primeras, por último mande a cargar este reporte al control del form con su propiedad ReportSource.
Crystal14
15.- Luego de esto si lo ejecutan deberán ver algo como esto.
Crystal15
16.- Ahora abramos el DataSet para crear algo extra, a continuación lo que haremos es crear un método que nos filtree solo los datos de las personas de género masculino. Para esto demos doble clic sobre el dataset o clic derecho y Open.
Crystal16
17.- Damos clic derecho sobre la tabla en la que crearemos el filtro –> Adjuntar –> Query.
Crystal17
18.- Lo que haremos a las siguientes 2 pantallas es simplemente darles clic en siguiente.
Crystal18
Crystal19
19.- Luego tendremos esto y lo que haremos es agregar otra tabla para relacionarla con la actual, para esto damos clic derecho en la parte blanca al lado de la tabla y en las opciones que se despliegan seleccionamos Adjuntar Tabla.
Crystal20
20.- Ya que nuestra Base de Datos solo posee 2 tablas solo podremos escoger 1, que es la tabla TGenero que es la que no tenemos puesta, la seleccionamos y damos clic en Adjuntar y luego en Cerrar.
Crystal21
21.- Como vemos a continuación ya nos aparece la tabla que agregamos relacionada con la primera que teniamos, esto es debido a que ya desde que las creamos hicimos esta relación; lo que sigue el como se ve en la imagen poner en la parte del medio o directamente en el query que necesitamos de la tabla TGenero el campo nombre_genero y que este nos servirá como filtro, por eso colocamos en la parte de filtro la palabra =@nombre_genero además debemos de sacar este campo de área Select, ya que si lo dejamos ahí no nos mostrará datos en nuestro reporte, o por lo menos eso es lo que me ha sucedido en la práctica, porque si lo ejecutamos en ese instante con el botón Execue Query si funciona normalmente pero con el Crystal Report encontre esa falla.
 Crystal22
22.- Ya al haberle dado clic en OK debe de presentarnos la siguiente imagen en la cual veremos ya hecha nuestra sentencia query de consulta, damos clic en siguiente para continuar.
Crystal23 23.- Ahora le pondremos un nombre tanto en la parte donde dice Fill a DataTable como en Return a DataTable, damos clic en siguiente.
Crystal24 24.- Lo que viene es que ejecutará lo que hicimos en el DataSet y guardará los cambios, solo le damos clic en Finalizar.
Crystal25
 25.- Ahora en el código modificaremos la línea que hacia el filtro en la tabla TPersona, en mi caso la puse como comentario, y coloqué la que cree recién, pueden ver que después del DataSet le pongo una coma y le envio un parámetro, esto es debido a que en mi query le puse el @nombre_genero, entonces por cada parámetro así que pongamos en el query que hicimos debemos enviarlo aquí es esa línea después del DataSet en el orden que nos lo pide la instrucción; en ese código yo puse la opción masculino directamente, si nosotros la colocaramos o escogieramos desde un textbox o un combobox este sería el que pondríamos ahí con su propiedad text.
Crystal26
26.- Ya lo que queda es ejecutar la aplicación y podremos ver que solo nos filtrará los datos de las personas de género masculino.
Crystal27

Bueno con eso he finalizado este pequeño manual de cómo hacer un Crystal Report en Visual Basic.NET, espero les haya sido de ayuda y ahí me cuentan que tal les fue, hasta, a2.

No hay comentarios:

Publicar un comentario