none
como hacer un filtro entre dos combobox para un reportviewer RRS feed

  • Pregunta

  • Buenas tardes!!! necesito ayuda urgente

    voy a hacer un reporte donde lo que necesito es que apartir del nombre que seleccione en un combobox, se llene el otro combobox con fechas correspondientes a esa persona (esto ya lo tengo hecho), entonces en base a lo que se seleccione en ambos combobox se hara el reporte! alguien sabe como debo hacerlo? estoy trabajando en sql y c#

    porfavor ayudenme doy mucha lata pero no soy taaaan buena programando

    jueves, 30 de agosto de 2018 0:55

Respuestas

  •  el codigo que se ve comentado es porque anteriormente el reporte se hacia a partir de un ID , se tecleaba en el textbox y con el boton de aceptar se hacia un reporte de acuerdo al id, y el codigo de mas abajo carga nombres de pacientes y de acuerdo al nombre que selecciones se cargan fechas en el otro combobox, es un combobox dependiente del otro :) ojala puedan ayudarme OTRA VEZ GRACIAS!!

    public partial class ImprimirReceta : Form
        {
            public ImprimirReceta()
            {
                InitializeComponent();
                cargar_Nombres();

            }

            private void ImprimirReceta_Load(object sender, EventArgs e)
            {



                // TODO: esta línea de código carga datos en la tabla 'Receta.Consultas' Puede moverla o quitarla según sea necesario.
                this.ConsultasTableAdapter.Fill(this.Receta.Consultas);

                //this.reportViewer1.RefreshReport();
            }

            private void pictureBox2_Click(object sender, EventArgs e)
            {
                // int datos = int.Parse(textBox1.Text);
                //  ReportParameter par = new ReportParameter("FiltroID", datos.ToString());
                // ReportParameter par = new ReportParameter("FiltroID", datos.ToString());
                // reportViewer1.LocalReport.SetParameters(par);
                this.reportViewer1.RefreshReport();

                //'" & ID & "'
            }

            private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
            {

            }

            private void panel1_Paint(object sender, PaintEventArgs e)
            {

            }

            public void cargar_Nombres()
            {
                using (SqlConnection Con = ConexionSql.ObtenerConexion())
                {

                    SqlCommand cmd = new SqlCommand("SELECT DISTINCT idPaciente, Nombre FROM Consultas", Con);// cadena que sirve para extraer el nombre de los medicamentos de la tabla medicina
                    SqlDataAdapter ad = new SqlDataAdapter(cmd);
                    DataTable dt = new DataTable();//representa una tabla que contiene datos
                    ad.Fill(dt);// agrega los datos provenientes de la BD a la tabla
                    Con.Close(); // Cierra la conexion

                    DataRow fila = dt.NewRow();
                    fila["Nombre"] = "Selecciona un Paciente";
                    dt.Rows.InsertAt(fila, 0);

                    comboBox1.ValueMember = "idPaciente";
                    comboBox1.DisplayMember = "Nombre";
                    comboBox1.DataSource = dt;

                }
            }

            public void cargar_Fechas(string idPaciente)
            {

                using (SqlConnection Con = ConexionSql.ObtenerConexion())
                {
                    SqlCommand cmd = new SqlCommand("SELECT Nombre, Fecha FROM Consultas WHERE idPaciente= @idPaciente", Con);
                    cmd.Parameters.AddWithValue("idPaciente", idPaciente);
                    SqlDataAdapter ad = new SqlDataAdapter(cmd);
                    DataTable dt = new DataTable();
                    ad.Fill(dt);
                    Con.Close();

                    DataRow dr = dt.NewRow();
                    dr["Fecha"] = "Selecciona una Fecha";
                    dt.Rows.InsertAt(dr, 0);


                    comboBox2.ValueMember = "idPaciente";
                    comboBox2.DisplayMember = "Fecha";
                    comboBox2.DataSource = dt;

                }
            }

            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                if (comboBox1.SelectedValue.ToString() != null)
                {
                    string idPaciente = comboBox1.SelectedValue.ToString();
                    cargar_Fechas(idPaciente);


                }
            }

    viernes, 31 de agosto de 2018 0:53

Todas las respuestas

  • Hola Deisy Andrei Rivas

    Con respecto a tu consulta, necesitamos que subas tu código/form para poderte asesorar  mejor y así poder encontrar una solución.



    Gracias por usar los foros de MSDN.

    Pablo Rubio

     _____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    jueves, 30 de agosto de 2018 17:54
    Moderador
  •  el codigo que se ve comentado es porque anteriormente el reporte se hacia a partir de un ID , se tecleaba en el textbox y con el boton de aceptar se hacia un reporte de acuerdo al id, y el codigo de mas abajo carga nombres de pacientes y de acuerdo al nombre que selecciones se cargan fechas en el otro combobox, es un combobox dependiente del otro :) ojala puedan ayudarme OTRA VEZ GRACIAS!!

    public partial class ImprimirReceta : Form
        {
            public ImprimirReceta()
            {
                InitializeComponent();
                cargar_Nombres();

            }

            private void ImprimirReceta_Load(object sender, EventArgs e)
            {



                // TODO: esta línea de código carga datos en la tabla 'Receta.Consultas' Puede moverla o quitarla según sea necesario.
                this.ConsultasTableAdapter.Fill(this.Receta.Consultas);

                //this.reportViewer1.RefreshReport();
            }

            private void pictureBox2_Click(object sender, EventArgs e)
            {
                // int datos = int.Parse(textBox1.Text);
                //  ReportParameter par = new ReportParameter("FiltroID", datos.ToString());
                // ReportParameter par = new ReportParameter("FiltroID", datos.ToString());
                // reportViewer1.LocalReport.SetParameters(par);
                this.reportViewer1.RefreshReport();

                //'" & ID & "'
            }

            private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
            {

            }

            private void panel1_Paint(object sender, PaintEventArgs e)
            {

            }

            public void cargar_Nombres()
            {
                using (SqlConnection Con = ConexionSql.ObtenerConexion())
                {

                    SqlCommand cmd = new SqlCommand("SELECT DISTINCT idPaciente, Nombre FROM Consultas", Con);// cadena que sirve para extraer el nombre de los medicamentos de la tabla medicina
                    SqlDataAdapter ad = new SqlDataAdapter(cmd);
                    DataTable dt = new DataTable();//representa una tabla que contiene datos
                    ad.Fill(dt);// agrega los datos provenientes de la BD a la tabla
                    Con.Close(); // Cierra la conexion

                    DataRow fila = dt.NewRow();
                    fila["Nombre"] = "Selecciona un Paciente";
                    dt.Rows.InsertAt(fila, 0);

                    comboBox1.ValueMember = "idPaciente";
                    comboBox1.DisplayMember = "Nombre";
                    comboBox1.DataSource = dt;

                }
            }

            public void cargar_Fechas(string idPaciente)
            {

                using (SqlConnection Con = ConexionSql.ObtenerConexion())
                {
                    SqlCommand cmd = new SqlCommand("SELECT Nombre, Fecha FROM Consultas WHERE idPaciente= @idPaciente", Con);
                    cmd.Parameters.AddWithValue("idPaciente", idPaciente);
                    SqlDataAdapter ad = new SqlDataAdapter(cmd);
                    DataTable dt = new DataTable();
                    ad.Fill(dt);
                    Con.Close();

                    DataRow dr = dt.NewRow();
                    dr["Fecha"] = "Selecciona una Fecha";
                    dt.Rows.InsertAt(dr, 0);


                    comboBox2.ValueMember = "idPaciente";
                    comboBox2.DisplayMember = "Fecha";
                    comboBox2.DataSource = dt;

                }
            }

            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                if (comboBox1.SelectedValue.ToString() != null)
                {
                    string idPaciente = comboBox1.SelectedValue.ToString();
                    cargar_Fechas(idPaciente);


                }
            }

    viernes, 31 de agosto de 2018 0:53
  • Hola Deisy Andrei Rivas

    Con respecto a tu consulta, necesitamos que subas tu código/form para poderte asesorar  mejor y así poder encontrar una solución.



    Gracias por usar los foros de MSDN.

     el codigo que se ve comentado es porque anteriormente el reporte se hacia a partir de un ID , se tecleaba en el textbox y con el boton de aceptar se hacia un reporte de acuerdo al id, y el codigo de mas abajo carga nombres de pacientes y de acuerdo al nombre que selecciones se cargan fechas en el otro combobox, es un combobox dependiente del otro :) ojala puedan ayudarme OTRA VEZ GRACIAS!!

    public partial class ImprimirReceta : Form
        {
            public ImprimirReceta()
            {
                InitializeComponent();
                cargar_Nombres();

            }

            private void ImprimirReceta_Load(object sender, EventArgs e)
            {



                // TODO: esta línea de código carga datos en la tabla 'Receta.Consultas' Puede moverla o quitarla según sea necesario.
                this.ConsultasTableAdapter.Fill(this.Receta.Consultas);

                //this.reportViewer1.RefreshReport();
            }

            private void pictureBox2_Click(object sender, EventArgs e)
            {
                // int datos = int.Parse(textBox1.Text);
                //  ReportParameter par = new ReportParameter("FiltroID", datos.ToString());
                // ReportParameter par = new ReportParameter("FiltroID", datos.ToString());
                // reportViewer1.LocalReport.SetParameters(par);
                this.reportViewer1.RefreshReport();

                //'" & ID & "'
            }

            private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
            {

            }

            private void panel1_Paint(object sender, PaintEventArgs e)
            {

            }

            public void cargar_Nombres()
            {
                using (SqlConnection Con = ConexionSql.ObtenerConexion())
                {

                    SqlCommand cmd = new SqlCommand("SELECT DISTINCT idPaciente, Nombre FROM Consultas", Con);// cadena que sirve para extraer el nombre de los medicamentos de la tabla medicina
                    SqlDataAdapter ad = new SqlDataAdapter(cmd);
                    DataTable dt = new DataTable();//representa una tabla que contiene datos
                    ad.Fill(dt);// agrega los datos provenientes de la BD a la tabla
                    Con.Close(); // Cierra la conexion

                    DataRow fila = dt.NewRow();
                    fila["Nombre"] = "Selecciona un Paciente";
                    dt.Rows.InsertAt(fila, 0);

                    comboBox1.ValueMember = "idPaciente";
                    comboBox1.DisplayMember = "Nombre";
                    comboBox1.DataSource = dt;

                }
            }

            public void cargar_Fechas(string idPaciente)
            {

                using (SqlConnection Con = ConexionSql.ObtenerConexion())
                {
                    SqlCommand cmd = new SqlCommand("SELECT Nombre, Fecha FROM Consultas WHERE idPaciente= @idPaciente", Con);
                    cmd.Parameters.AddWithValue("idPaciente", idPaciente);
                    SqlDataAdapter ad = new SqlDataAdapter(cmd);
                    DataTable dt = new DataTable();
                    ad.Fill(dt);
                    Con.Close();

                    DataRow dr = dt.NewRow();
                    dr["Fecha"] = "Selecciona una Fecha";
                    dt.Rows.InsertAt(dr, 0);


                    comboBox2.ValueMember = "idPaciente";
                    comboBox2.DisplayMember = "Fecha";
                    comboBox2.DataSource = dt;

                }
            }

            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                if (comboBox1.SelectedValue.ToString() != null)
                {
                    string idPaciente = comboBox1.SelectedValue.ToString();
                    cargar_Fechas(idPaciente);


                }
            }


    miércoles, 12 de septiembre de 2018 23:34