O bloco de programação Filtrar dados é responsável por realizar filtros OData em uma fonte de dados utilizando operadores lógicos "E" ou "OU". Este bloco funciona em conjunto com o bloco de programação Criar Filtro ou com uma lista de filtros. Para mais detalhes sobre os filtros das fontes de dados, acesse o tópico "Filtros e parâmetros" da documentação do Componente visual fonte de dados.


Figura 1 - Bloco Filtrar Dados


Este bloco pode ser utilizado com fonte de dados offline em aplicações mobile. Para mais informações sobre esse recurso, verifique o tópico "Suporte a dados offline (mobile)" da documentação Componente visual fonte de dados.

Também é possível filtrar fontes de dados a partir do bloco de programação Filtrar.

Compatibilidade

  • Bloco cliente: cronapi.screen.doFilter()
  • Bloco servidor: cronapi.screen.doFilter() - executado a partir da chamada do bloco cliente.

Retorno

Bloco sem retorno.

Parâmetros

Fonte de dados

Seleciona a fonte de dados que será utilizada para realizar a filtragem. Para selecionar uma fonte de dados é preciso vincular um formulário de referência ao arquivo do bloco, acesse o tópico "Propriedades do Blockly" da documentação Bloco de programação para mais detalhes.

  • Posição: 1
  • Inglês: Datasource
  • Tipo: Objeto / Object
  • Exemplo: fonte de dados vinculada a classe User.

Condição

Seleciona os valores "E" ou "OU" a serem utilizados na filtragem. Essa condição só se faz necessária se o filtro for realizado a partir de uma lista de parâmetros. A opção escolhida se aplica a todos os parâmetros adicionados.

  • Posição: 2
  • Inglês: Condition
  • Tipo: Booleano / Boolean
  • Exemplo: "E"
  • Opções:
    • Operador lógico E: serão exibidos apenas os registros que atendem a todos os filtros. Ver Exemplo 2.
    • Operador lógico OU: serão exibidos os registros que atendam a pelo menos uma condição. 

Filtro ou Lista de Filtros

É possível utilizar um único filtro ou uma lista de filtros. 

  • Posição: 3
  • Inglês: Filter or List of filters
  • Tipo: Object ou Array / Object or Array
  • Exemplo: podemos utilizar o bloco Criar filtro ou o bloco criar lista com para adicionar vários filtros

Exemplo 1

A função abaixo realiza uma filtragem a partir da marca do carro, note que como temos somente um parâmetro de busca (marca), não sendo necessário a utilização da condição "E" ou "OU".


A função do exemplo 1 está configurada com uma função de bloco chamada 'UnicoCampo', nela temos o bloco 'Filtrar dados' com seus parâmetros configurados da seguinte forma - 'Fonte de dados' está configurada para 'Carro', indicando que os dados a serem filtrados são provenientes de uma tabela 'Carro'. 'Condicional' está vazio. 'Filtro ou lista de filtro' contém um único bloco 'Criar Filtro' com seus parâmetros configurados da seguinte forma - 'Campo' especificando o atributo 'Marca' da tabela 'Carro'. 'Operador' com 'Igual', indicando que o filtro comparará valores iguais. 'Valor' com 'Renault', o critério usado para filtrar apenas os registros cuja marca seja 'Renault'. A configuração está filtrando dados da fonte 'Carro'- selecionando apenas os registros onde o campo 'marca' seja exatamente igual a 'Renault'.

Figura 2 - Bloco de programação Filtrar Dados realizando uma busca simples


A fonte de dados utilizada nesse exemplo contém várias características de carros, na figura 2.1 podemos ver a Grade dessa fonte de dados antes de ela ser filtrada.


A figura 2.1 do exemplo 1 lista uma grade com todos os elementos da tabela 'Carros' sem filtro.

Figura 2.1 - Dados antes da filtragem


Após a filtragem, perceba que somente cinco registros são exibidos.


A figura 2.2 do exemplo 1 lista uma grade com todos os elementos da tabela 'Carros' após o filtro, exibindo apenas os carros da marca Renault.

Figura 2.2 - Dados depois da filtragem

Exemplo 2

Para a criação de múltiplos filtros, é necessário a utilização do bloco de programação criar lista com, dessa forma, é possível criar filtros de busca por vários parâmetros, como no exemplo da figura 3, que utilizamos a lista para criar um filtro que realiza uma busca baseada em uma combinação dos quatro parâmetros: marcacor, dataCompra e donoUnico


A função 'MultiplosCampo' com o bloco Filtrar dados possui parâmetros, Fonte de dados com 'Carro', consulta da tabela 'Carro', Condicional contém 'E' e Filtro ou lista de filtro contém um bloco de lista com 4 blocos 'Criar Filtro'. Parâmetros do bloco Criar Filtro 1 - Campo contém 'marca', Operador contém 'Igual', Valor contém 'Renault', filtra por marcas igual a 'Renault'. Parâmetros do bloco Criar Filtro 2 - Campo contém 'cor', Operador contém 'Igual', Valor contém 'Preto', filtra por cor igual a Preto. Parâmetros do bloco Criar Filtro 3 - Campo contém 'dataCompra', Operador contém 'Maior ou igual a', Valor contém '05-09-2023', filtra registros cuja compra foi efetuada no dia ou após o dia. Parâmetros do bloco Criar Filtro 4 - Campo contém 'donoUnico', Operador contém 'Igual', Valor contém 'true', filtra registros com um único dono.

Figura 3 - Bloco de programação Filtrar Dados realizando uma busca com múltiplos campos


O resultado da busca pode ser conferido abaixo. Apesar de existirem vários carros da marca Renault cadastrados na fonte de dados, apenas os de cor preta, comprados com data maior ou igual a "05/09/2033" e pertencentes apenas a um único dono foram encontrados.


Figura 3.1 - Resultado para uma busca com múltiplos campos

Nesta página