Já precisou habilitar o calendário do EBS em campos data do seu form?
Os forms nativos do EBS possuem nos campos que são do tipo data, um calendário para facilitar o seu preenchimento.
A data pode ser digitada, mas ter a opção do calendário deixa a tela mais elegante e funcional.
Esse recurso está disponível no form de TEMPLATE do EBS, assim telas customizadas também podem usufruir da funcionalidade.
Se quiser aprender como habilitar o calendário nos seus forms, acompanhe esse artigo para descobrir:
- Configuração Necessária
- Opções Avançadas
Configuração Necessária
Antes de mais nada, é recomendado preencher a propriedade “Subclass Information” do campo data que deverá ter o calendário com a referência “TEXT_ITEM_DATE”:
Verifique se o campo está com tipo data.
LOV (Lista de valores)
O calendário utiliza o recurso de LOV do forms, então é necessário associar a lista ENABLE_LIST_LAMP:
A propriedade “Validate from List” deve ser “No”.
Trigger
Crie uma trigger KEY-LISTVAL para o item com o código abaixo:
calendar.show; |
Essa trigger deve ter a opção Execution Hierarchy como “Override”.
No momento de abrir o calendário, se o campo tiver alguma data preenchida, o calendário utilizará essa data.
Caso contrário, você pode passar a data desejada como parâmetro na chamada do calendar.show.
Opções Avançadas
Agora que seu calendário está pronto, é possível efetuar configurações adicionais.
Os códigos a seguir devem sempre vir antes da chamada calendar.show.
Desabilitar fins de semana
calendar.setup('WEEKEND'); |
Desabilitar um período de dias
calendar.setup('range' , TO_DATE('20052017', 'DDMMYYYY') , TO_DATE('28052017', 'DDMMYYYY')); |
Desabilitar dias via query
Exemplo para desabilitar feriados de uma tabela:
calendar.setup('Manufacturing Holidays' , NULL , NULL , 'select action_date LOW_DATE, action_date HIGH_DATE '|| 'from org_holidays where date_type = ''HOLIDAY'''); |
Conclusão
Esse é mais um exemplo de recurso simples de implementar, mas muito efetivo para o usuário final.
Quando um programa está sendo desenvolvido, tem que pensar sempre na experiência do usuário.
O programa tem que ser fácil de navegar, tem que exigir do usuário o mínimo de ações possíveis.
Se gostou desse artigo não deixe de compartilhar com seus amigos e contatos.
Link permanente
É possível usar a função calendar.show no value set special com a finalidade de abrir a telinha do calendário nos parâmetros do concurrent?
Link permanente
Opa, blz?
Infelizmente não. O que geralmente é feito é montar uma lista de valores com as opções de datas, como se fossem registros. Longe do ideal, mas é uma das alternativas.
Abs
Eduardo