none
Report Viewer con filtrado de datos desde un Datagridview RRS feed

  • Pregunta

  • Los saludo cordialmente, he filtrado mis registros por medio del siguiente código:

     public void Buscarfiltro()
            {
    
                conectar.Open();
    
                string query = @"SELECT * FROM Registros 
    						WHERE ((@DirigidoA IS NULL) OR ([DirigidoA] like '%' + @DirigidoA +'%'))
    						AND ((@Tema IS NULL) OR (Tema like '%' + @Tema +'%')) AND ((@FirmadoPor IS NULL) OR ([FirmadoPor] like '%' + @FirmadoPor +'%'))";
                SqlCommand cmd = new SqlCommand(query, conectar);
    
                if (string.IsNullOrEmpty(cbtema.Text))
                {
                    cmd.Parameters.AddWithValue("@Tema", DBNull.Value);
                }
                else
                {
                    cmd.Parameters.AddWithValue("@Tema", cbtema.Text);
                }
    
                if (string.IsNullOrEmpty(cbdirigido.Text))
                {
                    cmd.Parameters.AddWithValue("@DirigidoA", DBNull.Value);
                }
                else
                {
                    cmd.Parameters.AddWithValue("@DirigidoA", cbdirigido.Text);
                }
    
                if (string.IsNullOrEmpty(txtfirmas.Text))
                {
                    cmd.Parameters.AddWithValue("@FirmadoPor", DBNull.Value);
                }
                else
                {
                    cmd.Parameters.AddWithValue("@FirmadoPor", txtfirmas.Text);
                }
    
    
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                da.Fill(dt);
    
                dataRegistro.DataSource = dt;
    
                conectar.Close();
            }

    Hago un filtrado y me resultan dos filas que cumplen los parámetros, sin embargo, a la hora de generar el reporte o me aparecen todos los registros o no me aparece ninguno. (Código del Informe)

      public void FiltrarDatos(string Tema, string DirigidoA, string FirmadoPor)
            {
                try
                {
                    RegistrosTableAdapter.FBFiltar(RegistrosDataSet.Registros, Tema, DirigidoA, FirmadoPor);
                    reportViewer1.RefreshReport();
                    this.Show();
                }
                catch(System.Exception ex)
                {
                    System.Windows.Forms.MessageBox.Show(ex.Message);
                }
    

    Código del Botón para generar informe

         private void btngenerar_Click(object sender, EventArgs e)
            {
                string Tema = (cbtema.Text);
                string DiridigoA = (cbdirigido.Text);
                string FirmadoPor = (txtfirmas.Text);
                Reporte obj = new Reporte();
                obj.FiltrarDatos(Tema, DiridigoA, FirmadoPor);
            }

    Consulta del TablaAdapter

    SELECT        ID, FechaIngreso, Documento, FechaDocumento, FirmadoPor, DirigidoA, Procedencia, Tema, Asunto, Instrucción, Estado, Archivo, AtendidoPor, Atención
    FROM            Registros
    WHERE      Tema=@Tema and DirigidoA=@DirigidoA and FirmadoPor=@FirmadoPor

    Gracias por su ayuda
    lunes, 25 de febrero de 2019 20:30

Todas las respuestas

  • Hola  

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te hago la recomendación de ingresar a los siguientes enlaces en donde puedes encontrar una posible solución para tu problema.

    https://social.msdn.microsoft.com/Forums/es-ES/236c1d86-78a7-4db4-ba09-ae2758dff85a/como-filtrar-un-dato-de-una-tabla-de-sql-server-y-mostrar-en-un-datagridview-para-luego-sacar?forum=vbes

    https://social.msdn.microsoft.com/Forums/es-ES/309537c0-ddc5-4866-b565-ea4be53cd167/filtrado-de-datos-y-mostrarlos-en-un-datagridview?forum=vcses

    Gracias por usar los foros de MSDN.

    Pedro Alfaro

    lunes, 25 de febrero de 2019 23:34
    Moderador
  • Gracias por tu repuesta, estoy usando el lenguaje C# en Visual Studio por lo que el primer link me confunde al usar lenguaje VB. Para lo del segundo link ya tengo hecho ese proceso, sin embargo no se como pasar los datos filtrados a un reportviewer.
    martes, 26 de febrero de 2019 16:08