Componentes · Dados

Filtrar

Toda tela que lista dados tem dois cortes diferentes, e confundi-los é a origem da maioria dos problemas de listagem. Um é a régua que o sistema aplica sempre, sem a pessoa ver; o outro é a barra que a pessoa usa para apertar o resultado. Você configura os dois no editor, sem escrever consulta.

<mad-grid-filters> Painel da grade → Regras de carregamento · Barra superior → Configurar Filtros da Listagem 3 a 6 filtros na barra — acima disso, use o modo Drawer
01

Quem filtra o quê

Regras de carregamento é o corte que o sistema aplica sempre, antes de a tela aparecer, e que a pessoa não vê nem desliga; Filtros é a barra na tela, que a pessoa preenche e limpa quando quiser.

Você querOnde configurar
Mostrar só os registros ativos, para todo mundo, sempreRegras de carregamento
Mostrar só os registros da unidade de quem está logadoRegras de carregamento
Deixar a pessoa escolher o período que quer verFiltros
Deixar a pessoa procurar por situação ou responsávelFiltros
Um campo de busca por uma coluna, no cabeçalho da tabelaFiltro da coluna
Deixar a pessoa montar o próprio filtro — coluna, operador e valor — e salvá-loFiltro avançado (guia)
Procurar por qualquer palavra nas colunas visíveisBusca da listagem
Cortar as opções de um campo de escolhaDB Combo
Filtrar os números de um painel de indicadoresPainel de indicadores
A pergunta que decide: a pessoa pode desligar esse corte? Se pode, é Filtro. Se não pode — e não deve nem saber que existe —, é Regra de carregamento.
1

O corte do sistema: Regras de carregamento

A mesma janela aparece em dezesseis lugares do editor: na listagem, no DB Combo, no kanban, no cartão de indicador. Aprendeu uma vez, vale em todos.

  1. Selecione a grade e abra a seção Regras de carregamento no painel.
  2. Clique em Configurar filtros para abrir a janela.
  3. Clique em + Regra.
  4. Coluna: a coluna da tabela que entra na comparação — ex.: estado_id.
  5. Operador: igual, diferente, maior, contém, está na lista…
  6. Valor: o tipo mais comum é Valor literal, em que você digita o valor.
  7. Confira o Preview do PHP gerado e clique em Aplicar.
Resultado para quem usa o sistema: a lista já chega cortada: os registros que a regra exclui nunca aparecem, em nenhuma página, para nenhum usuário — e nem contam no total.
Destaque
Janela de Regras de carregamento com uma regra montada e o preview do PHP gerado

Clique no print para ampliar.

Exemplo montado: estado_id = 1.

Regra apertada demais esvazia a tela. Se a listagem abriu vazia logo depois de você mexer aqui, este é o primeiro lugar para olhar — e o Preview mostra exatamente o corte que está valendo.
O valor pode vir de quem está logado. No seletor de tipo, Sessão do sistema pega a unidade, a empresa ou o usuário da pessoa que abriu a tela — é assim que cada um vê só o que é seu, sem você escrever nada.
2

O corte da pessoa: a barra de filtros

  1. Com a listagem aberta, clique em Configurar Filtros da Listagem na barra superior do editor.
  2. Estilo: escolha como a barra aparece — Toolbar (filtros na linha), Chips, Drawer (painel lateral), Modal ou Sidebar.
  3. Em Colunas da tabela, marque as colunas que viram filtro. Cada coluna marcada cria um filtro pronto.
  4. Em Filtros declarados, ajuste cada um: o rótulo, o tipo de campo e se ele começa preenchido.
  5. Feche a janela e salve a tela.
Resultado para quem usa o sistema: a pessoa abre a listagem e encontra os filtros no alto (ou no painel lateral): escolhe o período, a situação, aperta e a lista responde — sem precisar pedir nada para ninguém.
Destaque
Janela Filtros da Listagem com os estilos de barra, as colunas da tabela e os filtros declarados

Clique no print para ampliar.

Filtro que já vem preenchido economiza um clique por dia de cada usuário: o período do mês corrente, a situação "em aberto". Deixe preenchido o que 90% das pessoas escolheriam.
3

Testar antes de entregar

Salve a tela e publique no Teste online. Confira nesta ordem:

O que fazerO que tem que acontecer
Abrir a listagemSó aparecem os registros que a regra de carregamento permite.
Contar o total no rodapéO total também respeita a regra — ele não conta o que foi cortado.
Usar um filtro da barraA lista aperta mais, sobre o que já estava cortado.
Limpar os filtrosA lista volta ao que a regra de carregamento permite — e não a tudo.
Trocar de página com um filtro ativoO filtro continua valendo na página 2.
Entrar com outro usuárioA regra que usa a sessão do sistema mostra os dados dele, não os seus.
05

Problemas comuns

A listagem abriu vazia depois que mexi nos filtros

Uma regra de carregamento está cortando tudo. Abra a janela de regras e leia o Preview do PHP gerado: ele mostra o corte exato que está valendo.

Limpo os filtros e ainda faltam registros

Isso é o esperado: limpar a barra remove o corte da pessoa, não o do sistema. O que continua faltando está sendo cortado pelas Regras de carregamento.

O filtro da barra não aparece na tela publicada

A barra existe mas nenhuma coluna foi marcada em Colunas da tabela — ou a tela não foi salva depois de fechar a janela.

Cada usuário deveria ver só os seus dados, mas todos veem tudo

A regra está com um valor fixo em vez de Sessão do sistema. Troque o tipo do valor para que ele venha de quem está logado.

Os filtros ocupam a tela toda

Passou de meia dúzia. Troque o Estilo para Drawer ou Modal: o botão fica no alto e o painel abre só quando a pessoa quer filtrar.

06

Referência: painel × código

Para quem também mexe no Blade, este é o de-para entre o painel e os atributos gerados.

No painelNo códigoPadrão
Regras de carregamento:filters · :querysem corte
Filtros (barra da tela)<mad-grid-filters>sem barra
Estilo da barrastyletoolbar
Botão que abre a barratriggerautomático
Título da barratitle—
Nome (ID)namemad-grid-filters-toolbar
Filtro da coluna<mad-col-filter>desligado