Гость
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Стартовая страница приложения + несколько вопросов / 4 сообщений из 4, страница 1 из 1
17.08.2010, 12:13
    #36795155
Gust2002
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стартовая страница приложения + несколько вопросов
Здравствуйте!
В APEX-е новичок (по образованию Дельфист), с вэб-приложениями знаком плохо. Использую APEX 4, OracleXE, Win7HB. С СУБД Oracle до этого работал очень мало.

В приложении имеется несколько логических групп пользователей. Для них создал две стартовые страницы. Не получается в зависимости от имени пользователя открыть нужную страницу.
Пробовал изменить pl/sql код процесса Logon:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
declare
  PageNumber VARCHAR2( 3 );
begin
  PageNumber := ':13';
  if SP_HASACCESTOEMPLOYEELAYER(:P101_USERNAME) = 'TRUE' then
    PageNumber :=':2';  
  end if;

  wwv_flow_custom_auth_std.login(
        P_UNAME       => :P101_USERNAME,
        P_PASSWORD    => :P101_PASSWORD,
        P_SESSION_ID  => v('APP_SESSION'),
        P_FLOW_PAGE   => :APP_ID||PageNumber);
end;

при этом создавалось впечатление, что номер передаваемой страницы не играет никакой роли, т.к. для последнего работающего с приложением пользователя открывалась последняя открытая им страница, для других пользователей всегда открывалась страница с номером 1.

Была идея создать On-load процесс на странице 1 и в зависимости от выражения SP_HASACCESTOEMPLOYEELAYER(APEX_CUSTOM_AUTH.GET_USER) = 'TRUE' открывтаь нужную страницу, однако не удалось найти такого примера для pl/sql.

Подскажите как правильно решить описаную задачу.

Еще не совсем понятны типы используемых данных, но вопрос сформулировать не могу, поэтому опишу три ситуации:

1) Упомянутая хранимая процедура SP_HASACCESTOEMPLOYEELAYER изначально возвращала тип BOOLEAN, однако сравнения c TRUE/FALSE не давали никакого результат (по внешним наблюдениям, складывалось впечатление, что код просто не выполняется), когда изменил на VARCHAR2 и начал сравнивать со строками начало работать.

2) На одной форме настройки отчета есть Date Picker-ы, по логике при открытии страницы нужно установить их значения в начало и конец текущего месяца. Рабочий код соответствующего процесса имеет вид:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
begin
  if trim(to_char(:P13_STARTPERIOD)) = '' then
    :P13_STARTPERIOD := TO_CHAR(trunc(CURRENT_DATE, 'month'), 'DD-MM-YYYY');
  end if;
  
  if trim(to_char(:P13_ENDPERIOD)) = '' then
    :P13_ENDPERIOD := TO_CHAR(last_day(CURRENT_DATE), 'DD-MM-YYYY');
  end if;
end;

здесь меня смущает выражение trim(to_char(:P13_STARTPERIOD)) = ''. По идее все должно быть проще, что-то типа :P13_STARTPERIOD = '' или :P13_STARTPERIOD = NULL , но так не работает, в итоге элементы оставались пустыми (и при to_char(:P13_ENDPERIOD) тоже).

3) Пробовал код из пункта 2 прописать в Computations для соответствующих элементов, при этом игнорировалась указанная маска отображения и значения выводились с заполненной нулями временной частью даты. И процесс и Computations вешал на Before Header.

Буду благодарен за любые разъяснения.
...
Рейтинг: 0 / 0
17.08.2010, 19:12
    #36796431
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стартовая страница приложения + несколько вопросов
а обязательно 2 стартовые страницы?
можно:
- если групп фиксированно 2 - сделать 2 региона на одной странице, и установить им condition "если юзер в группе - показывать, иначе не показывать"
- если групп бесконечное множество и если мы говорим о меню - вообще формировать менб на лету (как отчет на таблице, в которой есть развязка "группы - разрешенные переходы на страницы")
...
Рейтинг: 0 / 0
17.08.2010, 19:13
    #36796434
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стартовая страница приложения + несколько вопросов
вот здесь работающее решение с авторизацией, можно подсмотреть проверки привязок бзер-группа
http://forums.oracle.com/forums/message.jspa?messageID=4313589#4313589
...
Рейтинг: 0 / 0
17.08.2010, 21:02
    #36796569
Gust2002
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стартовая страница приложения + несколько вопросов
Alexus12а обязательно 2 стартовые страницы?
можно:
- если групп фиксированно 2 - сделать 2 региона на одной странице, и установить им condition "если юзер в группе - показывать, иначе не показывать"
- если групп бесконечное множество и если мы говорим о меню - вообще формировать менб на лету (как отчет на таблице, в которой есть развязка "группы - разрешенные переходы на страницы")

Спасибо за ответ, решение на основе регионов вполне устраивает.
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Стартовая страница приложения + несколько вопросов / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]