Administração do sistema

Validação de faixas de valores nos campos (range)

RT.FAQ-89944
Para restringir o preenchimento de um determinado campo a uma faixa de valores, basta incluir uma propriedade "range" no FORMAT do atributo e/ou item de um bloco de interface. O FORMAT pode ser customizado no ambiente de produção conforme explicado em Como customizar os campos das telas e relatórios em tempo de execução?

As faixas podem ser informadas da seguinte forma:

Faixa de valor inclusivo onde os parâmetros limites (início e fim) são válidos:
range: inicio .. fim
Exemplo:
range:0..100

Faixa de valor exclusivo onde os parâmetros limites (início e fim) não são válidos:
range: inicio ~ fim
Exemplo:
range:0~100

Lista de expressões avulsas:
operador valor [, operador valor [, ... ]]
Onde operador pode ser
<, >, <=, >= ou !=
Exemplos:
>0
<100
>=0, <=100
>-100, <100, !=0

Faixas numéricas

Seguem exemplos de faixas numéricas:

O valor informado deverá ser maior que zero:
range: > 0

O valor informado deverá ser maior ou igual a zero:
range: >= 0

O valor informado deverá ser menor ou igual a 100:
range: <= 100

O valor informado deverá ser maior que zero e menor ou igual a 100:
range: >0, <=100

O mesmo que >=0,<=100 mas com uma sintaxe mais intuitiva. O campo irá aceitar qualquer valor entre 0 e 100, incluindo os extremos (0 e 100):
range: 0..100

O mesmo que >0,<100 mas com uma sintaxe mais intuitiva. O valor informado deverá estar entre 0 e 100 de forma exclusiva. Os valores 0 e 100 não são aceitos:
range: 0~100

O valor informado deverá ser diferente de zero:
range: !=0

O valor informado deverá estar entre -100 e 100 (inclusive) e deverá ser diferente de zero:
range: -100 .. 100, !=0
ou
range:>=-100, <=100, !=0

Faixas de datas

Para a validação de campos de data, também pode-se utilizar a mesma estrutura. Neste caso a validação é sempre realizada como referência a hoje/agora, ou seja, <0, seria antes de hoje/agora. <=7 exigiria que a data fosse no máximo até 7 dias no futuro. Como facilitador de entendimento, é possível utilizar os parâmetros "hoje", "agora", "today" ou "now":

A data informada deverá ser menor que a data de hoje. Em campos DATE, será necessário informar uma data inferior a de hoje. Em campos DATE_TIME poderá ser utilizado qualquer data/hora do passado, mesmo que por só um segundo:
range: < hoje

A data informada deverá ser igual a data de hoje e até 7 dias (inclusive) no futuro:
range: hoje .. 7

A data informada deverá ser dos últimos 31 dias até ontem. Hoje não será aceito:
range: -31 .. -1

A data/hora informada deverá ser no futuro e no máximo até 0.33333 dias no futuro (8 horas / 24 = 0.33333 dias).
range: < 0.33333

Para facilitar, é permitido usar os sufixos "h" e "min" para informar tempos em horas e/ou minutos:
range: < 8h

Apenas será aceito uma data/hora dos últimos 25 minutos:
range: -25min ~ agora

Faixas de texto

Apesar de ser um recurso de uso improvável, também existe a possibilidade de definir faixas na informação de um texto. Segue a mesma sintaxe, porém os parâmetros deverão ser colocados entre aspas simples:

O texto informado deverá estar entre A e F. A palavra "A" será permitida mas a palavra "F" não será aceita. As palavras ELIGO e AMORA também não serão permitidas.
range: >='A', <'F', !='ELIGO', !='AMORA'

Ver também: