Procedimientos Almacenados con Crystal Report, MySQL y VB.NET

septiembre 6 20104 comentarios

Guardado en : Microsoft, Programación, Software Libre

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 :

Acerca del autor:

Ingeniero en Sistemas Computacionales.. Puedes contactarme sobre mis artículos en jsosa@smartdsign.net

4 Respuestas a “Procedimientos Almacenados con Crystal Report, MySQL y VB.NET”

  1. FRLOSA dice:

    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?

  2. alonso dice:

    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

  3. Eliot dice:

    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.

Deja un comentario


Licencia y uso

Las técnicas demostradas en los tutoriales pueden ser utilizadas sin ninguna limitación y tampoco es obligatorio dar una atribución.


Los textos, imágenes y tutoriales son propiedad de sus respectivos autores, nuestro contenido se encuentra bajo licencia Creative Commons Share-Alike.

Escribe algo para el sitio

El escribir un tutorial o un artículo, mandarnos un enlace para Ubicuos, no solamente es una forma de obtener publicidad, si no también de dar algo a la comunidad y nosotros te lo recompensamos con los premios del mes! Leer más de nuestras promociones

¿Sugerencias?

Este es TU sitio, si tienes sugerencias o ideas de cómo podemos mejorarlo para ti, ¡Por favor háznoslos saber!

Hacemos nuestro mayor esfuerzo en proporcionar un sitio útil y amigable y esperamos que disfrutes tu tiempo aquí.

Ayuda a Difundir

Te gusta Ubicuos?

Ve las formas en que nos puedes apoyar.

Apoyando a Ubicuos.com

Submit your linkClose

-->