Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Forms мисиия не выполнима / 13 сообщений из 13, страница 1 из 1
06.02.2008, 14:50
    #35113908
sQud
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Forms мисиия не выполнима
На форме есть блок(number of records displayed = 5) в тригере pre-reccord закрашивается текущая строчка. а в post-reccord строчка освобождается(т.е. перестает быть закрашенной становится белой).
Переходя по записям в блоке закрашенной будет тока текущая строка.
Если я перехожу в другой блок то срабатывает post-reccord и строка в блоке становится белой, а хочется, что бы оставалась закрашенной.
Возможно ли такое реализовать?
...
Рейтинг: 0 / 0
06.02.2008, 15:07
    #35113970
GKS_Samara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Forms мисиия не выполнима
А зачем так сложно с триггерами?
Ведь и у блока и у итеа есть свойство - 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
06.02.2008, 15:07
    #35113973
sQud
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Forms мисиия не выполнима
Слелал :) извините за спам :) достаточно обработать тригер выхода из блока. в него поместить тоже что и в pre-reccord
...
Рейтинг: 0 / 0
06.02.2008, 15:10
    #35113993
sQud
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Forms мисиия не выполнима
GKS_Samara
А зачем так сложно с триггерами?
Ведь и у блока и у итеа есть свойство - Current record attribute.

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

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

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

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


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

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

В смысле, на уровне блока можно объявить атрибут "CURRENT_ROW_BACKGROUND_COLOR" .
...
Рейтинг: 0 / 0
07.02.2008, 15:50
    #35117357
VNVor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Forms мисиия не выполнима
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
07.02.2008, 16:40
    #35117561
sQud
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Forms мисиия не выполнима
Спасибо!!!!
я реализовывал немного по другому , по этому не стал переделывать просто процедуру
Display_Item поменял на Set_Item_Instance_Property и все заработало как надо!!!

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


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