Administração do sistema

Filtros por expressão

RT.FAQ-71092
As telas de pesquisa, que permitem filtrar os registos de uma lista, atendem as necessidades comuns onde deseja-se buscar as informações de um ou mais registros que atendem a critérios simples como os pedidos de um determinado cliente, produtos com uma determinada referência, contas a pagar que irão vencer em um determinado período, etc.
Neste processo, o usuário simplesmente escolhe um campo, opcionalmente um operador (igual a, é um destes, contém, entre, etc.) e informa os valores a serem considerados para o operador selecionado. Esta combinação de campo, operador e valor(es) permite uma combinação enorme de critérios e atendem a grande maioria das situações práticas do dia a dia.

Existem, no entanto, algumas situações em que estes filtros não são o suficiente. Digamos, por exemplo, que o usuário deseja pesquisar todas as ocorrências encerradas em um determinado período que tempo executado extrapolou mais de 20% ao tempo estimado. Para casos como esse, foi criado um recurso onde o usuário pode incluir uma expressão que será acrescentada aos filtros normais de campo/operador.

Quando o filtro por expressão está habilitado, um campo "Filtrar expressão" é incluído no final dos campos normais da tela de pesquisa (QUERY). Neste campo, o usuário poderá informar uma expressão que irá restringir os valores desejados. Esta expressão é definida utilizando a sintaxe da linguagem SQL e pode utilizar qualquer uma das colunas utilizadas pelo bloco da interface. Para saber quais as colunas disponíveis, o sistema apresenta um campo de opção contento todas as colunas disponíveis logo abaixo da expressão. Ao selecionar uma destas colunas, o sistema copia o nome da mesma para dentro da expressão.

Exemplos

Listar apenas ocorrências cujo tempo executado tenha extrapolado em 20% o tempo estimado:
tempo_executado > tempo_estimado * 1.2

Listar apenas ocorrências em que o usuário está diretamente associado ou que está associado ao respectivo projeto.
exists (select 1 from pessoas_atividades p where p.atividade_id = query.pai_id and p.pessoa_id=[PERSON_ID])
or exists (select 1 from pessoas_atividades p where p.atividade_id = query.id and p.pessoa_id=[PERSON_ID])

Uso de parâmetros da sessão

A expressão pode ser contextualizada com qualquer parâmetro da sessão entre colchetes. Os principais são:

Ver Variáveis/parâmetros de sessão


Configuração

Para habilitar os filtros por expressão, pode-se utilizar a interface de configuração das telas (Configurações das interfaces do sistema) e ajustar os campos "Filtro por expressão" e "Cargo/função para usar expressão" ou configurar manualmente as seguintes preferências:

Uso a partir de dashboards/menus

Quando se desejar passar um filtro por expressão através de um parâmetro para uso em um menu e/ou dashboard, basta utilizar o parâmetro Q_Z_AW. Informando a expressão neste parâmetro fará com que a mesma seja aplicada ao filtro.
Atenção