Opção estilo pop-list
Como controlar as opções de um domínio OPCAO?
ADSRT.OPCAO.FAQ-8708
Quando o bloco de uma interface tem um campo do tipo OPCAO em uma LOOKUP (ou qualquer outro domínio que permita elencar uma lista de valores tais como SELECTION_CHECK, SELECTION_BOX, INTEGER_OPTIONS, etc.), o Telescope irá popular todos os valores da lista conforme as regras abaixo:
- A alteração pode incluir, alterar, excluir opções para o registro.
- Se o item ou atributo relacionado tiver valores literais informados, então estes valores serão populados.
- Se existir uma propriedade SQL_OPTIONS para o item ou para o respectivo atributo, então a query informada nesta propriedade será utilizada.
- Se o item for uma lookup, então o Telescope irá criar uma query que representa os dados desta lookup.
Tanto a propriedade SQL_OPTIONS como a condição de restrição informada na lookup permitem o uso das macros de substituição que representam uma propriedade de sessão, um parâmetro do bloco, uma preferência de configuração, um método local da interface ou uma preferencia de usuário:
- [SYSDATE]
- Variáveis de sessão como [USER_ID], [ESTABELECIMENTO_ID], etc. Ver Variáveis/parâmetros de sessão
- Parâmetros do bloco. Exemplo: [PEDIDO_ID]
- Preferências globais. Exemplo: [ANOTEC.CON_ANOTACOES_TECNICAS.SITUACAO_ANULADA]
- Preferências do usuário. Exemplo: [EMPEST.ACESSO_TODOS_ESTABELECIMENTOS]
- Uma função do próprio bloco. Exemplo: [RETORNAR_SITUACAO]
Quando o usuário quiser que o Telescope não popule a lista de valores no item, basta informar a propriedade HAS_SQL_OPTIONS=N no respectivo item.
Neste caso, o desenvolvedor deverá alimentar manualmente as opções.
No caso de utilizar a propriedade SQL_OPTIONS, a query informada deverá seguir o modelo abaixo:
select valor
, significado
from tabela
where condicao
order by significado
Observar que a query deverá obrigatoriamente possuir 2 colunas sendo que a primeira é do valor e a segunda é o que irá aparecer para o usuário.
No caso de valores fixos, pode-se definir o SQL_OPTIONS com uma lista de valores (um por linha) no formato VALOR=SIGNIFICADO. Exemplo:
A=Aprovado
C=Cancelado
P=Pendente
E=Entregue
Ver também: