Crear REPORTES en C# y SQL SERVER

Como Crear Reportes En C# y SQL SERVER con reportviewer y Procedimientos almacenados

En este articulo aprenderemos sobre la creación de reportes usando parámetros, y un procedimiento almacenado creado en Sql Server con reportviewer en el lenguaje de programación C Sharp (C#). Anteriormente ya he subido un tutorial en mi canal de youtube donde explicaba la creación de reportes los puedes ver aquí, en ese tutorial mostraba los registros de una tabla creada en una base de datos de Sql Server, por lo tanto el objetivo de este articulo es aprender a filtrar datos previamente almacenados en la Base de Datos y mostrarlos en nuestro reporte. Los pasos a seguir serán los siguientes:

Base de Datos en SQL SERVER

1- Ya he creado una Base de Datos en Sql Server que contiene tres tablas: clientes, prodcutos y ventas, estas tablas tienen los campos que se muestran a continuación: 

reportes en c#
Diagrama de la Base de Datos en Sql Server

Como te habéis dado cuenta es una Base de Datos simple pues la finalidad es desarrollar el ejemplo de un reporte con datos guardados en la Base de Datos de Sql Server.

Procedimiento Almacenado en Sql Server para reporte

Para efectos de enviar un parámetro o filtrar los registros que deseamos que se muestren en nuestro reporte, lo que haremos sera crear un procedimiento almacenado en Sql Server, y que este nos devuelva las ventas registradas en una fecha especifica, el código del procedimiento almacenado sera el siguiente:

Leer mas  Insertar Datos en tablas RELACIONADAS en C# y Sql Server

CREATE PROCEDURE Venta_Cliente

@Fecha Date


AS


BEGIN


select Clientes.Nombre, Clientes.Apellido, Productos.Nombre as Producto, Productos.Precio, Ventas.Fecha from Clientes inner join Ventas on Clientes.Id=Ventas.IdCliente inner join 

Productos on Productos.CodProducto=Ventas.IdProducto where Ventas.Fecha =@Fecha 


END

En el procedimiento almacenado el único parámetro que solicitara sera la fecha, para que nos muestre las ventas de la fecha indicada.

Formulario en Visual Studio

2. En Visual Studio lo que haremos sera crear un nuevo proyecto de Windows forms al cual le llamaremos EjemploReporte.

3. En el formulario que se nos crea por defecto agregamos un DateTimePicker para seleccionar la fecha y un botón para generar el reporte de la fecha especificada, el diseño del formulario sera el siguiente:

crear reportes en c# y sql server

4. Lo siguiente que debemos hacer es agregar un nuevo formulario al proyecto de Visual Studio, y le nombraremos MostrarReporte, a dicho formulario le agregaremos un reportviewer, y lo acoplamos al contenedor primario que es una propiedad del reportviewer, habiendo hecho esto nos quedara como en la siguiente imagen:

crear reportes en c# sql server con reportviewer y procedimientos almacenados
Reportviewer en C#

Dataset en C#

5. A Continuación agregamos un Dataset a nuestro proyecto, y le nombraremos DatasetPrincipal, posteriormente creamos una nueva conexión y le agregamos al dataset el procedimiento almacenado creado anteriormente (Ver vídeo).

Nota: Es importante que tengamos en cuenta que este mismo Dataset puedes usarse para todos los reportes del proyecto, es decir que ahí puedes agregar la cantidad de procedimientos almacenados o tablas que tu necesitaras según la necesidad del proyecto.

6. Ahora debemos agregar un informe a nuestro proyecto y le llamaremos ReporteVentasFecha a dicho informe le insertaremos una tabla y le seleccionamos como origen de datos el DatasetPrincipal, y en la opción conjunto de datos seleccionamos el procedimiento almacenado (Venta_Cliente). Por ultimo asignamos los campos del procedimiento almacenado en la tabla (ver vídeo) y el resultado seria este:

reporte en visual studio

7. El siguiente paso sera entrar al código código del formulario MostrarReporte, y agregaremos una propiedad la cual nos permitirá recibir la fecha (parámetro) que necesita el procedimiento almacenado para realizar la consulta en Sql Server.

dataset en c#

8. Estamos a punto de finalizar nuestro ejemplo únicamente nos restaría asignarle al reportviewer el informe creado y pasar el parámetro fecha al informe.

Leer mas  Crear Instalador en C# e Incluir Base de datos

Tutorial Reportes en C# y SQL Server

En el siguiente Tutorial se detalla todo el proceso para que sea comprensible y puedas aplicar a tu proyecto creado en C# con Sql Server:

Ver en Youtube

Entradas Relacionadas:

16 comentarios en «Crear REPORTES en C# y SQL SERVER»

  1. muy buena explicación!! tengo una duda si en vez de poner la fecha en cada registro solo la quiero mostrarla arriba una sola vez por ejemplo abajo de informe de ventas poner "Fecha del periodo:(aquí poner fecha seleccionada)" si me pudieras ayudar de antemano muchas gracias!

    Responder
  2. Excepción de HRESULT: 0x80131015e
    el formulario se carga y muetra el informe pero al cerrar la aplicacion me aparece el siguiente error
    Excepción de HRESULT: 0x80131015

    Responder
  3. Tengo un problema ! cuando selecciono mi procedimiento almacenado se me cierra la ventana y no la selecciona :C ayuda pls

    Responder
  4. Excelente el video y el articulo.

    Me podiras indicar como seria para un procedimiento almacenado que requiere 2 parametros.

    Agracias

    Responder
  5. Donde puede descargar ReportViewer porque a mi no me parece D:
    o como debo de instalarlo? como una libreria?

    Responder
  6. Hola una pregunta que pasa si tengo varias ventas en esa misma fecha genra reporte de todas las ventas de ese dia? y si solo quiero 1 en especifico.

    Gracias por la ayuda

    Responder
  7. hola, en tu caso podrias buscar la venta segun el numero de serie y numero de documento del comprobante de venta, ya q esta tiene una fecha asignada comun a las otras ventas y buscando por la serie y nro del documento, que es un nro unico para cada comprobante obtendrias lo q buscas

    Responder

Deja un comentario