none
crear reporte pidiendo por pantalla en un texbox un dato y con un boton para procesar RRS feed

  • Pregunta

  • hola alguien me puede ayudar

    necesito generar un reporte de becarios

    que pida por pantalla un rfc en un textbox; ejemplo: AAG670234X22

    y con un boton que procese la información

    rfc,  nombre    ap_paterno   ap_materno

     

    gracias

    martes, 4 de octubre de 2011 23:08

Todas las respuestas

  • cuando dices reporte a donde apuntas exactamente ? a Crystal a Reporting service

    poque ya sea cualqueira de estos que quieras suar podrias pedir el valor en un textbox del formulario y usarlo en tu query para cargar un dataset tipado que uses como origen de datos del reporte

     

    How to create local reports RDLC featuring barcode images in ASP.NET

    CodeProject: Using the ASP.NET 2.0 ReportViewer in Local Mode

    Using SQL Server Reporting Services in Client Mode

     

    Microsoft Reporting Services (Sub Reports, Charts, Parameters, Expression Editor, etc.)

    como veras al reporte no el pasas ningun valor ,sino que lo usas de filtro de tu consulta en el WHERE para cargar solo esos datos y asignar esto al reporte

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 4 de octubre de 2011 23:27
  • una pregunta:

    voy a utilizar el rdlc pero en windows form no esta la plantilla dataset1, como la obtengo?

    miércoles, 5 de octubre de 2011 15:12
  • no has probado agregando un nuevo item al proyecto

    imagen

    o buscalo como dataset, la cuestion es que deberia agfregar un .xsd

    este ya viene en el VS no se agrega por fuera

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 5 de octubre de 2011 15:21
  • Al crear el .rdlc puedes generar el DataSet tipado de la siguiente forma:

    Y ya sea que añadas una tabla al .rdlc, en sus propiedades encontraras una que va como "DataSetName" ahi seleccionas el DataSet que acabas de crear; una vez que se realiza el mapeo en las columnas de la tabla puedes seleccionar las propieades de "Alumno" que deseas mostrar.

    Y en codigo realizarias algo como lo siguiente:

    Puedes crear una forma que se encargue de renderizar reportes, en la cual solo necesitas crear diversos constructores para los origenes de datos que vas a planchar en el reporte. digamos que ya cuentas con una forma vacia (encargada de renderizar el reporte) con nombre FrmReporteRender; en la pantalla donde mandarias imprimir el listado de alumnos realizarias algo como lo que sigue:

    private void buttonImprimirTodos_Click(object sender, EventArgs e)
    {

       List<Alumno> listaAlumnos = tuObjetoQueDevuelveDatos.obtenerTodosAlumnos();

        using(FrmReporteRender frmRR = new FrmReporteRender(listaAlumnos))

       {

          frmRR.ShowDialog();

       }

    y en el constructor de tu renderizado de reportes realizarías algo como:

    public FrmReporteRender(List<Alumno> listaAlumnos)

    {

        generarReporteAlumnos(listaAlumnos);

    }

     void generarReporteAlumnos(List<Alumno> listaAlumnos)

    {

    ReportViewer reporte = new ReportViewer();

    reporte.Dock = DockStyle.Fill;

    reporte.ProcessingMode = ProcessingMode.Local;

    ReportDataSource sourceAlumnos = new ReportDataSource("Alumno", listaAlumnos);

    reporte.LocalReport.DataSources.Clear();

    reporte.LocalReport.DataSources.Add(sourceAlumnos);

    reporte.LocalReport.ReportEmbeddedResource = "TuNameSpace.reporteAlumnos.rdlc";

    this.Controls.Add(reporte);

    reporte.RefreshReport();

    }

    Eso es para una colección de datos, lo que comentas de mostrar solo los datos del alumno con el rfc proporcionado, pudieras lograrlo de manera similar al codigo que te planteo. en el clik de imprimir iria algo asi:

    private void buttonImprimirAlumno_Click(object sender, EventArgs e)
    {

    string rfc = tuTextBox.text;

    Alumno alumno = tuObjetoQueDevuelveDatos.obtenerAlumnoPorRFC(rfc);

    using(FrmReporteRender frmRR = new FrmReporteRender(alumno))

    {

    frmRR.ShowDialog();

    }

    }

    y en el constructor de tu renderizado de reportes realizarías algo como:

    public FrmReporteRender(Alumno alumno)

    {

        generarReporteAlumno(alumno);

    }

    void generarReporteAlumno(Alumno alumno)

    {

    ReportViewer reporte = new ReportViewer();

    reporte.Dock = DockStyle.Fill;

    reporte.ProcessingMode = ProcessingMode.Local;

    List<ReportParameter> parametros = new List<ReportParameter>
                {
                    new ReportParameter("nombre",alumno.Nombre),
                    new ReportParameter("ap_paterno",alumno.Ap_paterno),
                    new ReportParameter("ap_materno",alumno.Ap_materno),
                    new ReportParameter("rfc",alumno.Rfc),
                }; 

    reporte.LocalReport.SetParameters(parametros); 

    reporte.LocalReport.ReportEmbeddedResource = "TuNameSpace.reporteAlumnoRFC.rdlc";

    this.Controls.Add(reporte);

    reporte.RefreshReport();

    }

     en esta caso no requieres un dataset para planchar los datos, en el .rdlc agregas los parametros correspondientes ("nombre","ap_paterno", etc) y los acomodas acorde al diseño que tengas que implementar:

    saludos.



    • Editado darkneodev miércoles, 5 de octubre de 2011 16:36
    miércoles, 5 de octubre de 2011 16:34