Permite criar filtros para uma fonte de dados utilizando expressões OData que utilizam operadores de comparação e lógico.


Figura 1 - Bloco Filtrar


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 Dados.


Compatibilidade

  • Bloco cliente: cronapi.screen.filter()
  • Bloco servidor: cronapi.screen.filter() - 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.

Caminho

Recebe uma expressão OData contendo atributos da fonte de dados selecionada e operadores de comparação e lógico

Como o filtro é criado a partir de uma string, é possível utilizar o bloco Concatenar para montar a expressão. É necessário incluir aspas simples (') nos valores de alguns tipos, como String. 

  • Posição: 2
  • Inglês: Path
  • Tipo: Texto / String
  • Exemplo: modelo eq 'Clio' and donoUnico ne false

Características do bloco

Tanto o atributo da fonte de dados quanto o valor comparado devem ser compatíveis. Por exemplo, se o parâmetro atributo for uma data, o seu valor deve ser compatível com o tipo data.

Também é necessário ficar atento com os comparadores OData utilizados em atributos de determinados tipos. No caso dos tipos boleanos, não faz sentido utilizar outros comparadores que não seja Igual (eq) ou Diferente (ne).

Operadores de comparação OData

Os seguintes operadores de comparação podem ser utilizados no bloco:

  • eq: testa se o campo é igual ao valor informado.
  • ne: testa se o campo é diferente de valor informado
  • gt: testa se o campo é maior que o valor informado.
  • lt: testa se o campo é menor que o valor informado.
  • ge: testa se o campo é maior ou igual a um valor informado.
  • le: testa se o campo é menor ou igual a um valor informado.

Operadores lógicos OData

Os seguintes valores lógicos podem ser utilizados no bloco:

  • and: operador binário que será avaliado como true se as duas subexpressões forem verdadeiras.
  • or: operador binário que será avaliado como true se pelo menos uma das subexpressões forem verdadeiras.
  • not: esse operador unário inverte o resultado boleano da expressão. 

Exemplo 

A função abaixo utiliza uma expressão OData para filtrar a fonte de dados Carro, exibindo somente os carros da marca Renault que foram comprados com data superior a 16/09/2023.


Figura 2 - Função que busca registros baseados em dois parâmetros


A tabela abaixo exibe os dados antes da filtragem.


Figura 2.1 - Dados antes da filtragem


Após a filtragem, apenas 2 registros se encaixam na descrição passada no segundo parâmetro do bloco.


Figura 2.2 - Resultado do filtro aplicado na fonte de dados


Nesta página