powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Позиция Lov
5 сообщений из 5, страница 1 из 1
Позиция Lov
    #37239652
erkatrina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые программисты, помогите советом!
Есть Итем рядом кнопка, по нажатию которой выпадает Lov.
в Вен-буттом-прессед пишу do_key('list_values'). У итема есть key-listval, где обрабатываю :
if show_Lov(...) then
...
execute_query;
...
end if;
Проблема: ставлю в свойствах Lov "автоматическая позиция" и Lov выводится в центре окна формы. Если в key-listval пишу тупо list_values без дополнительной работы с Lov, то "автоматическая позиция" срабатывает и "прилепляет" всплывающее окно Lov к нужному Итему. В Чем проблема?
Заранее благодарю!
...
Рейтинг: 0 / 0
Позиция Lov
    #37243326
erkatrina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
молчат все...
Ну подскажите, как вывести список с использованием Show_Low рядом с нужным итемом, не использую координаты(т.к. если конкретно указать координаты, то при смене разрешения экрана окно Low уходит от итема. Если работать с формой на разных мониторах не красиво получается....).
...
Рейтинг: 0 / 0
Позиция Lov
    #37256699
Avstep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
erkatrina,

Думаю, надо использовать команду set_love_property('lov_name',position,x,y).
x,y находить при помощи
get_item_property('item_name',x_pos),
get_item_property('item_name',y_pos) ,
учитывая при этом, что координаты выдаются в координатах формы относительно левого верхнего угла канвы, т.е. дополнительно находить соответствующими методами координаты верхнего левого угла канвы. Для нахождения использовать get_view_property, при этом даются координаты относительно в.л. угла окна. Поэтому надо ещё найти координаты в.л. угла окна относительно в.л. угла экрана. Вот в этом месте возникнут сложности, т.к. окна бывают двух типов и координаты, которые даёт get_window_property.Это зависит от того, какого типа
- dialog или document. В первом случае координаты даются относительно левого угла экрана, а во втором - относительно главного окна приложения (FORMS_MDI_WINDOW). Вызова для определения типа окна. Плюс надо учитывать ширину фреймов окна (вверху и слева) (таких вызовов не существует, поэтому весьма приблизительно).
...
Рейтинг: 0 / 0
Позиция Lov
    #37257106
OmegaMale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
erkatrina,

Напишите триггер KEY-LISTVAL, например, вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
--
-- Пример проверки значения поля со списком после вызова LOV
--
DECLARE
	itemName CONSTANT VARCHAR2( 100 ) := :SYSTEM.TRIGGER_ITEM;
	oldValue VARCHAR2( 32767 );
	newValue VARCHAR2( 32767 );
BEGIN
	oldValue := NAME_IN(itemName);
	
	LIST_VALUES;
	
	newValue := NAME_IN(itemName);
	
	IF NVL(oldValue,newValue) IS NULL OR NVL(oldValue=newValue,FALSE) THEN
		-- Значение не поменялось
		NULL;
	ELSE
		-- Пользователь изменил значение
		-- что-то делаем
		MESSAGE('что-то делаем'); 
		PAUSE;
	END IF;
END;

Можно сделать чуть проще, если в LOV добавить одно "контрольный" столбец, который будет возвращать значение в скрытое поле на форме, а перед показом списка это поле очищать или устанавливать в текущее значение... тогда можно одно поле для всех списков использовать.
...
Рейтинг: 0 / 0
Позиция Lov
    #37259474
erkatrina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем за помощь!
OmegaMale, сделала по вашему совету через контрольный столбец. Все получилось!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Позиция Lov
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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