Reporte Web con Crystal Report usando Store Procedure
Vamos a explicar una manera sencilla y correcta de crear reportes con Crystal Report, dando prioridad a la mantenibilidad del código. Nos conectaremos a un store procedure y mandaremos parámetros de entrada al reporte.
Usaremos la base de datos Northwind de ejemplo.
Paso 1.- Crearemos una nueva solución: Archivo>Nuevo Proyecto>Otros Tipos de Proyecto>Solución de Visual Studio
Paso 2.- Agregamos un nuevo sitio Web a la solución: Archivo> Agregar > Nuevo sitio Web…
Paso 3.- Agregamos una clase llamada conexión al proyecto, nos preguntará si queremos que se cree una carpeta “app_code” le decimos que Sí.
Agregamos el siguiente código a la clase conexion:
public class Conexion
{
private string servidor = "JPANTOJA\\SQLEXPRESS";
private string basededatos = "Northwind";
private string usuario = "PREMIER\\rmauricio";
private string password = "";
public string Usuario
{
get { return usuario; }
set { usuario = value; }
}
public string Password
{
get { return password; }
set { password = value; }
}
public string Basededatos
{
get { return basededatos; }
set { basededatos = value; }
}
public string Servidor
{
get { return servidor; }
set { servidor = value; }
}
}
Paso 4.- Vamos al SQL y creamos el siguiente procedimiento almacenado, que simplemente busca empleados según la ciudad ingresada, si no se ingresará ningún criterio de búsqueda el reporte mostrará todos los empleados.
USE Northwind;
GO
create proc ObtenerEmpleadosporFecha
@City nvarchar(30)
AS
select TitleofCourtesy, LastName,FirstName,Address, City, Photo FROM Employees
WHERE City =isnull(@City, City)
Paso 5.- Agregar al proyecto un nuevo reporte:
Se abrirá la siguiente pantalla, presionamos aceptar.
Paso 6.- Despliegue la carpeta Crear nueva conexión y luego OLEDB, seleccione proveedor a SQL Native Client luego presionen siguiente.
Paso 7.- Colocamos la información de conexión, y damos clic en finalizar.
Paso 8.- Ahora busquemos nuestro store procedure y lo ponemos en la derecha, damos aceptar cuando nos pidan parámetros, presionamos siguiente.
Paso 9. - Colocamos en la derecha los campos que queremos que se muestren, y damos clic en finalizar.
Paso 10.- Bien, ahora a programar, vamos a agregar un dropdownlist y a llenarlo:
Agregamos un Crystal Report Viewer:
Paso 11.- Agregamos el siguiente código nuestra página:
</span></em></span></em>
<em><em> </em>
<em> </em>
using System;
using System.Data;
using System.Configuration;
using System.Web
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
//Referencias
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using CrystalDecisions.ReportSource;
public partial class _Default : System.Web.UI.Page
{
ReportDocument Report = new ReportDocument();
Conexion con = new Conexion();
ParameterDiscreteValue cityDV = new ParameterDiscreteValue(); //parametro de entrada
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
CargaReporteEmpleados(null);
}
}
public void CargaReporteEmpleados(string parametroCity)
{
string reportPath = Server.MapPath("Empleados.rpt");
Report.Load(reportPath);
Report.DataSourceConnections[0].SetConnection(con.Servidor, con.Basededatos, con.Usuario, con.Password);
cityDV.Value = parametroCity;
Report.SetParameterValue("@City", cityDV);
CrystalReportViewer1.ReportSource = Report;
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
if (DropDownList1.SelectedItem.Value.ToString() == "nulo")
{
CargaReporteEmpleados(null);
}
else
{
CargaReporteEmpleados(DropDownList1.SelectedItem.Value.ToString());
}
}
}
Paso 12.- Corramos nuestro ejemplo:
Eso es todo, les dejo el código: ReporteWebDatanoia
Buen día.
→ Entradas Relacionadas:














[...] http://www.datanoia.com/reporte-web-con-crystal-report-usando-store-procedure.html [...]
Estuve realizando el reporte paso a paso pero no entendi el paso “4″ donde dices colocar las lineas en el SQL pero no consigo en la pagina aspx una seccion SQL
Hola Daniel, no entiendo bien tu pregunta, el código SQL obviamente se ejecuta en el mismo SQL SERVER en la base de datos Northwind
Gracias risharp en realidad soy nuevo con la programación en visual studio 2008 gracias por la ayuda, lo que pasa es que no tengo SQL SERVER y estoy manejando una base de datos .mbd (archivo en access), se que a un DataSet puedo leer una base de datos y hay puedo colocar la instrucción SQL voy a probar…
Hola. Estoy tratando de realizar un reporte y me parece muy buena idea usar Crystal Report, pero existe un detalle, lo que necesito es pasar una pagina HTML(Claro que solo el resultado de esta) a Crystal, he estado buscando , pero la verdad no se si se pueda, si pudieran brindarme algo de ayuda se los agradeceria mucho.
Creo que te amoooo!!
Hola, muchísimas gracias. He estado mas o menos una semana intentando resolver este problema. Hasta que encontré este foro, yo lo necesitaba para aspx pero este me sirvió muy bien , cualquiera que quiera el proyecto realizado me lo solicita a mi correo fox_die283@hotmail.com.
Les enviare todo lo que necesiten para que les funcione, obviamente tendrán que cambiar la cadena de conexión.
De nada Yrvin, muy contento de que te halla servido. Saludos
Hola amigo risharp!
Este tutorial es excelente, ayuda mucho!
pero estoy intentado ponerlo en un formulario de windows!
Pero como son las librerias o como seria el paso 11!
y seria de usar y comboBox en lugar de dropdownlist!
Esperando contar siempre con tu ayuda!
Gracias!!!!!!
Disculpame amigo creo que por la desesperacion no busque mucho!
no me habia dado cuenta que esta pagina es muy buena! y encontre mi problema en el otro post tuyo! mientras pruebo te aviso como me va!
Gracias!
Hola, excelente, cuenta con nosotros.
Deja tu Opinión
Síguenos
Feed RSS:
Recibe nuestros artículos via Feed
RSS via E-Mail:
Recibe nuestros artículos en tu Mail
Twitter:
Síguenos en Twitter @datanoia
Licencia
Últimos Posts
Comentarios
Switch to our mobile site