12 de diciembre de 2012

Pasar Parametros a Crystal Report

Algunas veces en nuestra aplicación de escritorio hay que pasar información(parametros) directamente desde el formulario(VB o C#)  hasta nuestro reporte, información que pueden variar en cada presentación de reporte y que el usuario debe especificar como por ejemplo el autor del reporte o simplemente notas especificas para cada reporte y que no se pueden obtener desde la base datos o con alguna formula elaborada, por eso muestro como pasar parametros desde el Windows Form hacia el Crystal Report.

Lo primero va ser crear el reporte, en caso no puedan hacerlo o quieran dar una revisada aquí hay un link en que muestro como hacerlo reporte !!!

Ahora, el ejemplo va para Visual Basic, mas abajo lo muestro para C# y lo primero que debemos hacer es ir a nuestro reporte y declarar un campo parametro del tipo Parameter Field desde el Field Explorer


Luego especificamos el nombre y tipo del parametro a enviar y luego le damos aceptar con lo que tendremos disponible el campo para colocarlo en cualquier parte del informe, en mi caso llame al parametro ejemplo y lo coloque en el pie del reporte:




y luego desde el Windows Form en VB ponemos este código:


Imports System.Data
Imports System.Data.SqlClient
Public Class Form1
    Dim ds As New datos    <---- a="a" crea="crea" dataset="dataset" el="el" font="font" informe="informe" instancia="instancia" llenar="llenar" para="para" que="que" se="se">
    Dim rpt As New reporte   <---- a="a" crystal="crystal" el="el" instancia="instancia" report="report" span="span">

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Using Sql As New SqlConnection(My.Settings.pruebaConnectionString)
            Using da As New SqlDataAdapter("select * from empleado", Sql)
                da.Fill(ds, "empleado")
                rpt.SetDataSource(ds)
                rpt.SetParameterValue("ejemplo", "Hola Mundo")
                CrystalReportViewer1.ReportSource = rpt
            End Using
        End Using
    End Sub
End Class

Pero en caso quieras mandar un valor dentro de una variable, por ejemplo que capture la info desde un textbox para ser mostrado en el informe, haz esto:

Dim variable As String = "lo que quieras"
rpt.SetParameterValue("ejemplo", variable)



pero si lo quieren en C#, aqui esta:


using System.Data.SqlClient;
using System.Configuration;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        SqlConnection sql;
        SqlDataAdapter da;
        reporte rpt = new reporte();
        datos ds = new datos();
        string conexion = ConfigurationManager.ConnectionStrings["pruebaConnectionString"].ConnectionString;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            using (sql = new SqlConnection(conexion)) {
                using (da = new SqlDataAdapter("select * from empleado", sql)) {
                    da.Fill(ds, "empleado");
                    rpt.SetDataSource(ds);
                    rpt.SetParameterValue("ejemplo", "Hola mundo");
                    this.crystalReportViewer1.ReportSource = rpt;
                    this.ShowDialog();
                }
            }
        }
    }


y de nuevo las lineas para pasar el valor de una variable al reporte:


string variable = "Hola mundo";
rpt.SetParameterValue("ejemplo", variable);


es todo :)

Related Posts:

  • Crystal Report con VS2010 (VB y C#)Hacer reportes en VB o en C# es de los mas cotidiano, incluso es parte de las actividades en una prueba cuando te presentas aplicando a un trabajo(área de login-ACME-reporte con resultados de búsqueda), así&nbs… Read More
  • Resultados búsqueda en Crystal Report Haremos un buscador de datos de un empleado y mostraremos los resultados en un reporte de Crystal Report, para esto utilizaremos VB2010 y la base de datos: empleado, la cual tiene los siguientes campos el te… Read More
  • Pasar Parametros a Crystal ReportAlgunas veces en nuestra aplicación de escritorio hay que pasar información(parametros) directamente desde el formulario(VB o C#)  hasta nuestro reporte, información que pueden variar e… Read More
  • Crear reporte en CR y sumar campos stringMostrare como crear un reporte usando VB2010, un Dataset y la información de una tabla en SQL 2008 para luego obtener el total de resultados de una columna especifica del reporte, lo primero sea crear el proyecto en… Read More