示例#1
0
        private DataTable FiltrarUsuario(string usr, string nombre, string apellido, string rol)
        {
            DataTable tabla_usuario   = DAOUsuario.obtenerTabla(usr);
            var       final_usuario   = "";
            var       posFiltro       = true;
            var       filtrosBusqueda = new List <string>();

            if (usr != "")
            {
                filtrosBusqueda.Add("usr LIKE '%" + usr + "%'");
            }
            if (nombre != "")
            {
                filtrosBusqueda.Add("nombre LIKE '%" + nombre + "%'");
            }
            if (apellido != "")
            {
                filtrosBusqueda.Add("apellido LIKE '%" + apellido + "%'");
            }
            if (rol != "")
            {
                List <Rol> tabla_rol = DAORol.obtenerRolesDeUsuario(rol);
                if (tabla_rol.Count > 0)
                {
                    bool hayMasFiltros = false;
                    if (filtrosBusqueda.Count != 0)
                    {
                        hayMasFiltros = true;
                    }
                    string filtro_rol = "";
                    if (hayMasFiltros)
                    {
                        filtro_rol += "(";
                    }
                    filtro_rol += ("usr = '******'");
                    for (int i = 1; i < tabla_rol.Count; i++)
                    {
                        filtro_rol += " OR ";
                        filtro_rol += ("usr = '******'");
                    }
                    if (hayMasFiltros)
                    {
                        filtro_rol += ")";
                    }
                    filtrosBusqueda.Add(filtro_rol);
                }
            }
            //Concatena hasta formar la consulta para filtrar
            foreach (var filtro in filtrosBusqueda)
            {
                if (!posFiltro)
                {
                    final_usuario += " AND " + filtro;
                }
                else
                {
                    final_usuario += filtro;
                    posFiltro      = false;
                }
            }
            //Filtra las columnas
            tabla_usuario.DefaultView.RowFilter = final_usuario;
            //Devuelve la tabla filtradra
            return(tabla_usuario);
        }