Como habilitar o calendário em campos do tipo data nos forms do EBS

Oracle EBS Calendar

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”:

Subclass Information

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:

LOV Calendar

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.

2 Comentários


  1. É 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?

    Responder

    1. 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

      Responder

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *