powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Получить название формы в наборах значений в OEBS
11 сообщений из 11, страница 1 из 1
Получить название формы в наборах значений в OEBS
    #37701961
Доброго дня!

Изложу суть дела
Имеется стандартная форма oebs. На форме имеются ОГП. К одному из полей привязан набор значений. В этом наборе значений используются ссылки на родительский блок с формы(как бы параметры получает), в тексте набор значений получается нечто типа

Код: plsql
1.
select * from таблица where vendor_id = :headers.vendor_id



Проблема в том, что это же гибкое поле используется на другой форме, где блока :headers не существует. В итоге получаю ошибку при открытии формы.

Можно было бы в наборе значений в зависимости от имени формы использовать необходимый блок, но вот как получить имя формы - не знаю.
Или, быть может, есть какие-то более правильные решения этого вопроса..

Спасибо!
...
Рейтинг: 0 / 0
Получить название формы в наборах значений в OEBS
    #37702027
Тупой Пух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Навазние формы,

использовать в НЗ голбальную переменную (например :Global.header_id) которую в каждой форме инициализировать на основе ее (формы) блоков и полей
...
Рейтинг: 0 / 0
Получить название формы в наборах значений в OEBS
    #37702239
Тупой Пух,

Да вот стандартные формы очень не хотелось бы ковырять..
Или все это как-то можно провернуть инициализацией?
...
Рейтинг: 0 / 0
Получить название формы в наборах значений в OEBS
    #37702583
Тупой Пух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Навазние формы,

есть CUSTOM.pll, есть персонализация форм ....
...
Рейтинг: 0 / 0
Получить название формы в наборах значений в OEBS
    #37702638
OldBoyOdeSu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не в курсе что такое OEBS работаю с чистыми формсами, и в принцыпе проверить существование итема очень просто
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
it_id Item := Find_Item('headers.vendor_id');
v_value varchar2(x); --hranit znachenie

IF Id_Null(it_id) THEN 
   v_value := name_in('otherblock.vendor_id');
ELSE
   v_value := name_in('headers.vendor_id');
END IF;

select * from таблица where vendor_id = v_value



это просто набросок
...
Рейтинг: 0 / 0
Получить название формы в наборах значений в OEBS
    #37702702
OldBoyOdeSu,

Таак. Не совсем то, что ожидал, но если эту штуку прикрутить к индивидуализации на форме, то может и прокатить. Спасибо!
...
Рейтинг: 0 / 0
Получить название формы в наборах значений в OEBS
    #37704073
OldBoyOdeSu,
Формсовые функции в инициализации неуместны..

Подскажите пожалуйста, может можно это реализовать через глобальные/локальные переменные в инициализации? Спасибо
...
Рейтинг: 0 / 0
Получить название формы в наборах значений в OEBS
    #37704100
OldBoyOdeSu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Навазние формы,

Ну тогда я врядли смогу помочь, я в глаза не видел этот продукт, и как там всё устроено не в курсе...
единственное я ещё привиду пример как получить имя текущего окна в формсах, навсякий случай

p_cur_win varchar2(100) := GET_VIEW_PROPERTY(GET_ITEM_PROPERTY (NAME_IN('SYSTEM.CURSOR_ITEM'), ITEM_CANVAS),WINDOW_NAME);

ну опять же это чистый формс... удачи
...
Рейтинг: 0 / 0
Получить название формы в наборах значений в OEBS
    #37704103
OldBoyOdeSu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так же :SYSTEM.EVENT_WINDOW only for
--WHEN-WINDOW-CLOSED
--WHEN-WINDOW-RESIZED
--WHEN-WINDOW-ACTIVATED
--WHEN-WINDOW-DEACTIVATED
...
Рейтинг: 0 / 0
Получить название формы в наборах значений в OEBS
    #37704247
lunar-fairy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доступ к названию текущей формы дает :SYSTEM.CURRENT_FORM.
...
Рейтинг: 0 / 0
Получить название формы в наборах значений в OEBS
    #37704283
lunar-fairy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но, вероятно, вам потребуется где-нибудь в форме определить глобальную переменную, т.к. сильно сомневаюсь, что LOV спокойно отнесется к попытке обработать условие типа
Код: sql
1.
2.
3.
4.
5.
vendor_id = case 
                       when :SYSTEM.CURRENT_FORM = 'FORM1' then :headers.vendor_id
                       when :SYSTEM.CURRENT_FORM = 'FORM2' then :headers2.vendor_id
                       else :headers3.vendor_id
                 end



Скорее всего он по-любому проверит наличие всех упомянутых блоков. Так что наверное вам придется где-то перед открытием ОГП (например, в WHEN-NEW-RECORD-INSTANCE) через персонализацию определить глобальную/локальную переменную и залить в нее id из нужного блока, а в наборе писать

Код: sql
1.
vendor_id = :GLOBAL.g_vendor_id
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Получить название формы в наборах значений в OEBS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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