powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Forms мисиия не выполнима
13 сообщений из 13, страница 1 из 1
Forms мисиия не выполнима
    #35113908
sQud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На форме есть блок(number of records displayed = 5) в тригере pre-reccord закрашивается текущая строчка. а в post-reccord строчка освобождается(т.е. перестает быть закрашенной становится белой).
Переходя по записям в блоке закрашенной будет тока текущая строка.
Если я перехожу в другой блок то срабатывает post-reccord и строка в блоке становится белой, а хочется, что бы оставалась закрашенной.
Возможно ли такое реализовать?
...
Рейтинг: 0 / 0
Forms мисиия не выполнима
    #35113970
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем так сложно с триггерами?
Ведь и у блока и у итеа есть свойство - Current record attribute.

sQud wrote:
> Автор: "sQud"
> На форме есть блок(number of records displayed = 5) в тригере
> pre-reccord закрашивается текущая строчка. а в post-reccord строчка
> освобождается(т.е. перестает быть закрашенной становится белой).
> Переходя по записям в блоке закрашенной будет тока текущая строка.
> Если я перехожу в другой блок то срабатывает post-reccord и строка в
> блоке становится белой, а хочется, что бы оставалась закрашенной.
> Возможно ли такое реализовать?
> Тема <http://www.sql.ru/forum/actualthread.aspx?tid=522923> Ответить
> <http://www.sql.ru/forum/actualpost.aspx?tid=522923> Сообщение
> <http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=522923&msg=5252204>
>
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Forms мисиия не выполнима
    #35113973
sQud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Слелал :) извините за спам :) достаточно обработать тригер выхода из блока. в него поместить тоже что и в pre-reccord
...
Рейтинг: 0 / 0
Forms мисиия не выполнима
    #35113993
sQud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GKS_Samara
А зачем так сложно с триггерами?
Ведь и у блока и у итеа есть свойство - Current record attribute.

Дело в том что мне необходимо ещё одно условие обрабатывать и в соотвтствии с этим сыставлять цвет
...
Рейтинг: 0 / 0
Forms мисиия не выполнима
    #35114042
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне идея с PRE, POST триггерами не нравится. А помещать логику закрашивания в триггер выхода из блока - вообще криво. Получается 1) раскрасили 2) опять закрасили, т.к. раскрасили ошибочно

КРИВО! Imho. Хотя задача жизненная и тем интересна.
...
Рейтинг: 0 / 0
Forms мисиия не выполнима
    #35114095
sQud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
согласен кривова-то, тока вот как сделать по другому не знаю, а делат нужно
...
Рейтинг: 0 / 0
Forms мисиия не выполнима
    #35114502
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sQudсогласен кривова-то, тока вот как сделать по другому не знаю, а делат нужно

А Вы уверены, что Ваше решение РАБОТАЕТ ?

Ты учел, что POST-RECORD и POST-BLOCK может сработать для одной записи, а PRE-RECORD для уже для другой. Если пользователь ушел в другой блок, и мышкой вернулся на другую запись в блоке (не ту, с которой уходил). Не оказывается ли в это случае 2-е подсвеченные записи?


Пока мое решение. Триггер WHEN-NEW-RECORD-INSTANCE:

Запоминать пред. запись и при покраске "новой", сначала перекрашивать старую. Коряво. Т.к. при перевыполнении запроса запомненное значение нужно скидывать, аналогичная проблема с удалением ж(
...
Рейтинг: 0 / 0
Forms мисиия не выполнима
    #35114635
sQud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы правы мое решение не работает для двух различных блоков, но у меня два блока ссылаются на одну таблицу и как раз в этом случаи все работает нормуль
...
Рейтинг: 0 / 0
Forms мисиия не выполнима
    #35114675
sQud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати а как перекрасить старую запись по запомненной позиции?
...
Рейтинг: 0 / 0
Forms мисиия не выполнима
    #35116283
Фотография Piggys
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Forms 10g есть "Current Record Attribute Property", это не то, что Вам нужно?
...
Рейтинг: 0 / 0
Forms мисиия не выполнима
    #35116293
Фотография Piggys
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PiggysВ Forms 10g есть "Current Record Attribute Property", это не то, что Вам нужно?

В смысле, на уровне блока можно объявить атрибут "CURRENT_ROW_BACKGROUND_COLOR" .
...
Рейтинг: 0 / 0
Forms мисиия не выполнима
    #35117357
VNVor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sQudКстати а как перекрасить старую запись по запомненной позиции?Ничего запоминать не надо.
В действительности все работает нормально вот таким макаром:
У блока пишем 5 триггеров (POST-QUERY,PRE-RECORD,POST-RECORD,PRE-BLOCK,POST-BLOCK).
Создаем всего две процедуры (о наличие соответствующих Visual_Attribute у формы догадаетесь):
Код: 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.
25.
26.
27.
28.
29.
PROCEDURE P_Set_VA_CurRec(block_name in varchar2, item_name in varchar2, condition in boolean) IS
BEGIN
	if condition then
	  Set_Item_Instance_Property(block_name||'.'||item_name, current_record, Visual_Attribute, 'VA_CURRENT_REC_RED');
	else
  	Set_Item_Instance_Property(block_name||'.'||item_name, current_record, Visual_Attribute, 'VA_CURRENT_REC');
	end if;
END;

PROCEDURE P_Set_VA_Item(block_name in varchar2, item_name in varchar2, condition in boolean) IS
 current_VA varchar2( 100 );
BEGIN
	current_VA := get_item_property(block_name||'.'||item_name, VISUAL_ATTRIBUTE);

	if current_VA = 'VA_SORT_COL' then 

	  if condition then
	    Set_Item_Instance_Property(block_name||'.'||item_name, current_record, Visual_Attribute, 'VA_SORT_COL_RED');
	  else
	   Set_Item_Instance_Property(block_name||'.'||item_name, current_record, Visual_Attribute, 'VA_SORT_COL');
	  end if;

	else
	 if condition then
	    Set_Item_Instance_Property(block_name||'.'||item_name, current_record, Visual_Attribute, 'VA_OTHER_REC_RED');
	  else
	    Set_Item_Instance_Property(block_name||'.'||item_name, current_record, Visual_Attribute, 'VA_OTHER_REC');
	  end if;
	end if;
END;
и дергаем эти процедуры в соответствующих триггерах блока, вычисляя нужное условие у этого же блока (P_Set_VA_Item -> в POST-QUERY, POST-RECORD, PRE-BLOCK. P_Set_VA_CurRec -> в PRE-RECORD и POST-BLOCK).
Это в принципе двух-цветный вариант. Если нужно больше цветов (больше условий для раскраски) - раскручивайте эти две процедуры на свой вкус, добавляйте параметры и т.п. Удачи... :-)
...
Рейтинг: 0 / 0
Forms мисиия не выполнима
    #35117561
sQud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!!!!
я реализовывал немного по другому , по этому не стал переделывать просто процедуру
Display_Item поменял на Set_Item_Instance_Property и все заработало как надо!!!

Модератор: Тема перенесена из форума "Oracle".
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Forms мисиия не выполнима
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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