Filtragem Avançada

Set AllowFiltering="true" (allowFiltering em React ) e a barra de ferramentas da grade recebe um botão Filtro , que abre os próprios filtros da visualização no construtor de consultas FetchXML para o usuário alterar. Qualquer coisa que o FetchXML possa filtrar pode ser construída: condições nas colunas da tabela, agrupadas com AND e OU, comparadas com um valor ou com outra coluna, e tabelas relacionadas — se existe um registro relacionado ou uma condição correspondente própria. Apenas as colunas e tabelas relacionadas que o usuário pode ler são oferecidas, e o servidor recusa um filtro em qualquer outra coisa. Os filtros do usuário duram enquanto a grade mostra a visualização: outra visualização começa da sua própria.

Filtragem dos Contatos da Amostra

Pressione o botão Filtro na barra de ferramentas. O diálogo se abre nos filtros da visualização mostrada na grade. Todos os Contatos não tem nenhum dos seus — a segurança de linhas da tabela de contatos já mantém todas as consultas para os contatos que você pode ler — então abre vazio, pronto para o seu. Contatos em Empresas com Cidade mantém aqueles cuja empresa tem uma cidade, por meio de uma tabela relacionada com uma condição própria. Mude-os, pressione Aplicar, e a grade mostra as linhas que correspondem da primeira página, seu botão de Filtro preenchido para mostrar que os filtros são seus. Coisas para tentar:

  • Abra o menu de uma coluna — a seta no cabeçalho — e escolha Filtrar por para filtrar apenas nessa coluna: um valor igual para começar, ou o dia de uma data. O cabeçalho mostra um ícone de filtro enquanto as linhas estão filtradas, e a condição está lá com o resto no diálogo Filtrar . Limpar filtro, no mesmo menu, remove o problema.
  • Adicione uma linha e escolha uma coluna, um operador e um valor — Contém algumas letras de um nome, por exemplo, ou uma idade maior que 40 anos. O editor de valores segue a coluna: um seletor de data para data, uma lista para uma escolha, um seletor de registros para uma consulta.
  • Adicione um grupo para combinar condições sob Match any (OR) ou Match all (AND), aninhado tão fundo quanto você precisar.
  • Mude uma linha de By value para By para By para comparar duas colunas do contato.
  • Escolha Adicionar entidade relacionada e escolha uma relação — a empresa do contato, por exemplo — depois dê condições próprias, ou altere Must have para Não tem linha relacionada para manter os contatos sem tal registro, ou para Não tem linha correspondente para manter aqueles sem correspondência com as condições. Apenas as tabelas que você pode ler estão listadas.
  • Abra o diálogo novamente e pressione Reset para visualizar e voltar aos filtros da visualização, ou escolha a outra visão, que começa pela própria.
Exemplo de reação Exemplo de Blazor React TypeScript Razor

Uma visão que filtra o que o usuário pode não ler

Contatos de Proprietários Ativos mantém os contatos cuja conta de usuário do proprietário está habilitada, por meio de uma tabela relacionada — usuários do sistema — à qual a demo não dá acesso aos visitantes. Em vez de mostrar todos os contatos (o filtro foi deixado de fora) ou nenhum (a tabela relacionada não corresponde a nenhuma linha), a grade indica em qual tabela não pode filtrar, para que o desenvolvedor possa dar acesso aos usuários ou mudar a visualização. Abra o diálogo Filtro e leve o proprietário para ver as linhas: o diálogo mostra a tabela relacionada da visualização, mas não oferece usuários do sistema para adicionar. Um usuário interno logado na demo, cujos papéis de segurança do Dataverse decidem o que lê, vê as linhas.

Exemplo de reação Exemplo de Blazor React TypeScript Razor