Procedimientos Almacenados con Crystal Report, MySQL y VB.NET
Anteriormente publiqué un tutorial sobre como conectar Crystal Report con Mysql en VB.NET http://www.ubicuos.com/2010/04/26/conectar-crystal-reports-con-mysql-server-5-1-en-vb-net/, ahora les presento una forma de agregar un store procedure a nuestro reporte y pasarle un parametro desde vb.net.
Supongamos que tenemos la siguiente tabla:
CREATE TABLE `persona` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `nombre` varchar(45) NOT NULL, `edad` int(10) unsigned NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
y el siguiente Store Procedure:
DELIMITER $$ CREATE PROCEDURE `getpersona`() BEGIN SELECT *FROM persona; END $$ DELIMITER ;
Siguiendo el tutorial anterior, nos ubicamos en la parte del Asistente de Base de Datos, y seleccionamos nuestro procedimiento almacenado creado previamente..
Una vez añadido lo veremos en el Explorador de Campos de nuestro VB.NET, ahí mismo arrastraremos los capos al reporte para poder visualizarlos.
Asta aquí, si corremos nuestra aplicación veríamos algo cómo esto:
Ahora, a nosotros lo que nos interesa es extraer información manipulando alguno de sus campos. Lo que vamos a hacer es lo siguiente:
El el evento Load de nuestro formulario (donde tenemos el visor de crystal report) vamos a agregar estás lineas de código:
Private Sub FormCRMysql_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.CrystalReportViewer1.SelectionFormula = "{getpersona.id} = 4" Me.CrystalReportViewer1.RefreshReport() End Sub
Que hace esto?? Bueno la primer línea le indica al visior que ejecute el Store Procedure, siempre y cuando el campo id sea igual que 4. La segunda línea refresca el reporte para visualizar los cambios.
En este caso el formulario se llama FormCRMysql y el visor de crystal report se llama CrystalReportViewer1.
Por ultimo corremos nuestra aplicación..
Y listo!!
Espero sea de grán ayuda!!
Dudas, comentarios y/ó saludos.. no duden en hacerlos llegar.
Saludos!!
CrystalReportViewer1
Quizá te interese :
Una de las formas más comunes de conectar que eh encontrado acerca de como conectar Crystal Repo ...
En php es muy fácil realizar consultas para tener acceso a las bases de datos de MySql, para ell ...
Vamos a explicar como hacer una paginación de datos en CodeIgniter. Para ello a mi proyecto l ...













[...] http://www.ubicuos.com/2010/09/06/procedimientos-almacenados-con-crystal-report-mysql-y-vb-net/ September 8, 2010 // MySQL // No Comments // [...]
Hay un caso , cuando intento pasar un store procedure como fuente de datos al crystal report este no funciona si el SP necesita parametros de entrada , y si no necesita parametro si funciona en crystal report
.
Cual sera la Razon?
Profa si puedes responde en este mismo post o ami correro
edwin_amc@hotmail.com te lo agredesco de antemano por el post.
hola :muy instructivo tu post
pero hice todo pero uso un SP ques el siguiente
DELIMITER $$
create procedure consulta(
in xdt1 datetime,
in xdt2 datetime)
begin
SELECT d.descrip,s.apelsoc,s.nomsoc,d.total
FROM (detrecibo d INNER JOIN recibo r ON d.codrec=r.codrec) INNER JOIN socios s ON r.codsoc=s.codsoc
where r.fecha between xdt1 and xdt2 ORDER BY d.descrip;
END $$
DELIMITER ;
pero cuando agrego el procedimientyo de almacenado
y lo tengo listo para q me agrege los campos del mismo SP al cristal R “”no aparece ninguno campo “”??¿?¿?¿??
A!! uso la misma base de datos el vb.net 2008
Muy interesante tu explicación. Tengo un problema con un Sub-Informe en Crystal que tambien lo obtengo de un Store Procedure con parámetros los cuales debo enlazar desde el informe principal dinamicamente. Espero tu apoyo y gracias de antemano.