Plataforma do sistema
T2 - Como utilizar QueryOperators?
ADSRT.FAQ-7960
Os QueryOperators são os tipos de operações permitidas para filtrar registros da base de dados. Eles permitem filtrar registros que tenham um determinado campo igual a um determinado valor, ou através de semelhança, faixa de valores, etc.
Cada domínio já tem pré configurado um conjunto de operações possíveis, mas em determinados casos, o desenvolvedor pode optar em alterar este conjunto padrão.
Para isso, ele deverá incluir um método (sugerimos usar o nome DEFINIR_FILTROS) chamado pelo evento PRE-DISPLAY da respectiva QUERY.
Definir as operações de filtro de um campo:
qCidade.setQueryOperators("!=", "=", "nn");
Excluir uma ou mais operações de query de um campo
qCidade.delQueryOperator("!=");
ou
qCidade.delQueryOperators("!=", "=");
Excluir todas as operações de query de um campo
qCidade.delAllQueryOperators();
Adicionar operações de filtro de um campo:
qCidade.addQueryOperator("!=");
Como identificar o que foi informado em um filtro
O comando abaixo irá retornar a expressão SQL que será usada como filtro usando "c" para a coluna de binding ou null caso não exista filtro.
qDataTerminoEfetivo.getQueryFilter().getWhereExpression("c")
Retorna valores como:
- null (não tem filtro)
- c = ?
- c is not null
- c between ? and ?
- c != ?
- etc.
Relação de QueryOperators disponíveis
"d" = Default
Trata como like se existir um "%" ou "_" no filtro ou como "=" caso contrário.
- "s", "ns" = Contém (ou Search) - Busca por registros que tenham (ou não tenham) todas palavras informadas no campo (indiferente da ordem)
- "=" = Igualdade - Lista apenas quando o atributo é exatamenta igual ao que foi informado
- "!=" = Diferente - Lista apenas quando o atributo é diferente do que foi informado
- "l", "nl" = Like - Usa o operador like / not like do SQL
- "<", "<=", ">", ">=" = Comparação - Lista apenas registros cujo atributo seja menor / menor ou igual / maior / maior ou igual ao valor informado
- "b", "nb" = Between - Equivale ao operador "between" / "not betweem" do SQL.
- "i", "ni" = In - Equivale ao operador "in" / "not in" do SQL.
- "n", "nn" = Null - Equivale ao operador "is null" / "is not null" do SQL.