вторник, 27 марта 2007 г.

APEX и APP_VERSION - 2: исправляем ошибку

Как уже упоминалось ранее, в последней версии Application Express не была исправлена ошибка, связанная с форматом даты последнего изменения приложения. То есть, при выводе даты последнего изменения приложения невозможно получить формат даты, используемый в Европе (DD.MM.YYYY).
Чтобы исправить эту досадную ситуацию, как оказалось, необходимо лишь небольшого знания структуры APEX. А именно того, что дата последнего изменения приложения хранится в поле APEX_APPLICATIONS.LAST_UPDATED_ON (APEX_APPLICATIONS - это взгляд (view), который доступен всем Oracle пользователям).
Далее уже дело техники... Зная, что страница с номером "0" (page 0) будет отражаться на всех страницах приложения, необходимо создать ее. Далее, добавляем на нее новый регион:

  • Type: "HTML"
  • Subtype: "HTML"
  • Title: "Version"
  • Region template: no template
  • Display point: After Header
После чего добавляем в регион новый элемент управления:
  • Item type: "Display Only"
  • Pick Display Only Type: "Display as Text (does not save state)"
  • Item Name: "P0_APP_VERSION"
  • Region: "Version"
  • Label: "Last update:"
  • Item Source: "SQL Query"
  • Item Source Value:
Select to_char(fl.LAST_UPDATED_ON, 'DD.MM.YYYY')
From APEX_APPLICATIONS fl
Where application_id = :APP_ID;

Можно пойти дальше, и используя взгляд Apex_Application_Pages и переменные :APP_ID, :APP_PAGE_ID, иметь дату последнего изменения каждой страницы. Подход тот же, за исключением запроса для "P0_APP_VERSION":

Select to_char(LAST_UPDATED_ON, 'DD.MON.YYYY')
From Apex_Application_Pages
Where application_id = :APP_ID
And page_id = :APP_PAGE_ID

Вот и все! Теперь дата изменения приложения будет выводиться в любом желаемом формате (вариации ограничены только фантазией и возможностями функции TO_CHAR)!

Комментариев нет: