none
Reportviewer solo muestra un registro RRS feed

  • Pregunta

  • Buen día a todos,

    Esta pregunta ya la he visto en varios foros pero sigo instrucciones y no se que mas hacer sigo con mi inconveniente.

    Tengo un Rdlc enlazado a una Clase Class_Citas en donde necesito mostrar en una tabla (tengo un Tablix) los resultados de una consulta, uso C#.

    Clase Class_Citas

    using Microsoft.Reporting.WinForms;
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    
    namespace CXN
    {
        public class Class_Citas
        {
            public string Hora_Cita { get; set; }
            public string Paciente { get; set; }
            public string Telefono { get; set; }
            public string Profesional { get; set; }
            public string Aseguradora { get; set; }
            public string Admision { get; set; }
        }
    }

    Consulta que paso a la clase dede otro Form:

    String Cargar_Hora = "AQUI VA LA CONSULTA A LA BASE";
                        SqlCommand Carga_Command = new SqlCommand(Cargar_Hora, con);
                        SqlDataReader Lectura_Hora = (Carga_Command.ExecuteReader());
                        if (Lectura_Hora.Read() == true)
                        {
                            Class_Citas Class_Citas1 = new Class_Citas();
                            Rpt_Citas Rpt_Citas1 = new Rpt_Citas();
    
                            Class_Citas1.Hora_Cita = Convert.ToDateTime(Lectura_Hora["Hor_Pac_Hora_Cita"].ToString()).ToString("HH:mm");
                            Class_Citas1.Paciente = Lectura_Hora["Hor_Imp_Age"].ToString();
                            Class_Citas1.Telefono = Lectura_Hora["Pac_Telefono"].ToString();
                            Class_Citas1.Profesional = Lectura_Hora["Bod_Responsable"].ToString();
                            Class_Citas1.Aseguradora = Lectura_Hora["Ase_Descripcion"].ToString();
                            Class_Citas1.Admision = Lectura_Hora["Hor_Id"].ToString();
                            Rpt_Citas1.Class_Citas1.Add(Class_Citas1);
                            Rpt_Citas1.Show();
                        }
                        else
                        {
                            MessageBox.Show("No hay resultados");
                            return;
                        }

    Este es el codigo en el Formulario que tiene el ReportViewer

    public partial class Rpt_Citas : Form
        {
            public List<Class_Citas> Class_Citas1 = new List<Class_Citas>();
            public Rpt_Citas()
            {
                InitializeComponent();
            }
    
            private void Rpt_Citas_Load(object sender, EventArgs e)
            {
                reportViewer1.LocalReport.DataSources.Clear();
                reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet2", Class_Citas1));
                this.reportViewer1.RefreshReport();
                this.reportViewer1.RefreshReport();
                this.reportViewer1.RefreshReport();
                this.reportViewer1.RefreshReport();
            }
        }

    Este es mi Rdlc (Tablix)

    Y finalmente este es mi resultado

    Alguien por favor me puede orientar que debo cambiar en mi proceso para que me muestre la cantidad de registros correcta en mi Reportviewer, que la consulta contenga.

    Agradezco sus valiosas respuestas

    viernes, 30 de octubre de 2020 16:10

Todas las respuestas

  • No se ve claramente cómo es el flujo de datos porque faltan porciones, pero si efectivamente solo llamas una única vez al código que has mostrado para leer datos con el DataReader, entonces fíjate que solo está programado para leer el primer registro (tiene un "if" en lugar de un "while").
    viernes, 30 de octubre de 2020 21:13
    Moderador
  • Agradezco tu respuesta, pero también he usado el while en lugar de if, y me sigue mostrando un solo registro.

    Talvez usando un for each pero no se muy bien en donde colocarlo.

    viernes, 30 de octubre de 2020 23:26