powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Подсветка узлов в дереве в apex 4
39 сообщений из 39, показаны все 2 страниц
Подсветка узлов в дереве в apex 4
    #37562196
electrod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет!

Такая проблема:
В дереве есть узлы, в которых может быть размещено в скобках число, например "Сообщения(1)". Требуется такие узлы в дереве подсвечивать красным не зависимо от того, выделен элемент дерева или нет. При этом узел дерева может находиться на разном уровне, не обязательно на корне или на листе.

Сделал javascript, но он не срабатывает правильно, API дерева не очень понятно.

Скрипт подсвечивает только первый уровень, да и то неверно.

treeData = window[tree.attr('id').replace(/^tree(\d+)$/, 'l$1Data')][0].children;

for(var i = 0; i<treeData.length; i++)
try {
if (/\S+ \(\d+\)$/.test(treeData[i].data.title))
{apex.jQuery('li[id='+treeData[i].attributes.id+'] a').css('color', 'red').css('font-weight', 'bold');}} catch(err){}
for(var j = 0; j<treeData[i].children.length; j++)
try {if (/\S+ \(\d+\)$/.test(treeData[i].children[j].data.title)
{apex.jQuery('li[id='+treeData[i].children[j].attributes.id+'] a').css('color', 'red').css('font-weight', 'bold');}} catch(err){}
}


Помогите плз...
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #37562598
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
electrod,
значения value в запросе записываются в id (apex 4.1)

поэтому можно так
Код: plaintext
1.
2.
3.
       case when msg_count>0 then 'TreeRed_' || rownum
            else 'TreeBlack_' || rownum
       end  as value,



Код: plaintext
1.
$('[id^="TreeRed_"]').children('a').css('color', 'red').css('font-weight', 'bold');
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #37562779
electrod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!

Если стоит apex 4.0 в котором нельщя записывать текст в ID?
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #37562868
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
electrod,

проверил на 4.0.2 11gXE работает, проверяю так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
select case when connect_by_isleaf = 1 then 0
            when level = 1             then 1
            else                           -1
       end as status, 
       level,
       'name' || rownum as title,
       null as icon,

       case when mod(rownum,2)=0 then 'TreeRed_' || rownum
            else 'TreeBlack_' || rownum
       end  as value,

       null as tooltip,
       null as link 

from (select 1 from dual union all
      select 1 from dual) t
connect by level<3



+после прогрузки выполняю:
Код: plaintext
1.
$('[id^="TreeRed_"]').children('a').css('color', 'red').css('font-weight', 'bold');



+в 4.1 чуть пофиксили описание:
Syntax: select status, level, title, icon, value, tooltip, link from ... where ... start with... connect by prior id = pid order siblings by ...
You must select the columns in the following order (e.g. status, level, title, icon, value, tooltip, link..)
Ordering applies the ORDER SIBLINGS BY clause to the siblings of the hierarchy
Example:
select case when connect_by_isleaf = 1 then 0 when level = 1 then 1 else -1 end as status,
level,
ENAME as title
NULL as icon,
EMPNO as value,
ENAME as tooltip,
NULL as link
from EMP
start with MGR is null
connect by prior EMPNO = MGR
order siblings by ENAME
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #37563023
electrod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, я перепутал.

Спасибо огромное!
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #37563233
electrod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SvDev,

к сожалению, завязку на ID не получилось делать, так как ID уже используется при формировании URL и придется много переделывать...

возможно ли как то получить доступ к всем LI внутри $("#tree18103013790848102") и посмотреть через жаваскрипт через функцию test?
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #37564836
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
electrod,

Можно, прочитайте про функцию .each()
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Подсветка узлов в дереве в apex 4
    #38300224
SHeLEST1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDevelectrod,

проверил на 4.0.2 11gXE работает, проверяю так
+
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
select case when connect_by_isleaf = 1 then 0
            when level = 1             then 1
            else                           -1
       end as status, 
       level,
       'name' || rownum as title,
       null as icon,

       case when mod(rownum,2)=0 then 'TreeRed_' || rownum
            else 'TreeBlack_' || rownum
       end  as value,

       null as tooltip,
       null as link 

from (select 1 from dual union all
      select 1 from dual) t
connect by level<3



+после прогрузки выполняю:
Код: javascript
1.
$('[id^="TreeRed_"]').children('a').css('color', 'red').css('font-weight', 'bold');




А где именно выполняется $('[id^="TreeRed_"]').children('a').css('color', 'red').css('font-weight', 'bold'); ??? (местоположение сия скрипта)
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #38300839
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SHeLEST1местоположение сия скрипта

Думаю, в Execute When Page Loads .
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #38300840
tanukii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLerSHeLEST1местоположение сия скрипта

Думаю, в Execute When Page Loads .
Спасибо большое! Изучая 1 пример пришлось перелопатить половину документации.
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #38300842
tanukii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А никто не знает почему ораклоидные создатели решили такое дерево сделать? в чем выгодно применение JS в создании дерева??? Столько решений интересных на форуме нужных вовремя приходят, но почему б не оставить им старые деревья которые всё хранили... пол форума забито вон как раз у нас жалобами на деревья
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #38300849
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanukii,

маркетинг и движение вперёд в общем тренде. Фронтенд приложений ближайшего будущего будет популярно делать на HTML5+CSS3+JS2.

Вам никто не мешает сделать Ваш собственный плагин для региона с деревом и отображать его как удобно.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Подсветка узлов в дереве в apex 4
    #39076345
Zeke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кто-нибудь знает, как подсветить узел в Apex 5?

в интернетах везде один и тот же пример чаще всего приводят

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SELECT EMPLOYEE_ID AS ID
     , MANAGER_ID  AS PID
     , CASE
         WHEN EMPLOYEE_ID = :P4_EMPLOYEE_ID THEN
             '<span style="color:white;background-color:blue;">'||
             LAST_NAME||
             '</span>'
         ELSE
             LAST_NAME
       END AS NAME
     , 'f?p=&APP_ID.:4:'||:SESSION||'::NO::P4_EMPLOYEE_ID:'||EMPLOYEE_ID AS LINK
     , NULL        AS A1
     , NULL        AS A2
  FROM #OWNER#.EMPLOYEES


Но почему-то не прокатывает он. В наименовании узла тупо весь этот код с тегами и выводится. Может не те теги нужно использовать или еще в какие-то обернуть? или в 5-й версии Apex это вообще по-другому нужно делать?
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39076479
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Zeke,

Очевидно надо отключить escape character, в пятом это настройка региона.
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39076489
Zeke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel,

пробовал - не работает все равно
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39076855
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zeke,
в фокс плагине firebug меняете стили и смотрите сразу результат. Когда стал красный - вторая часть работы (проще)
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39077222
Zeke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Zeke,
в фокс плагине firebug меняете стили и смотрите сразу результат. Когда стал красный - вторая часть работы (проще)

Я не понял смысла этой фразы, если честно. В браузере файерфокс нужно пробовать это что ли?
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39077299
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zeke,
да.
Если знаете JS.
Если не знаете, могу посмотреть у себя. Я не подсвечивал узел (фонариком), а менял иконку.
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39077326
Zeke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Честно говоря, JS знаю слабо. Если не трудно, то можете у себя позырить? Смысл простой - если узел дерева равен заданному id, то его выделяем цветом и все. Например, при редактировании уже существующей записи нужно подсветить конкретный узел дерева.
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39077464
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zeke,
я делал в стандартном деревер APEX.
Там пример запроса есть. Там колонка с именем icon.
Код: sql
1.
#WORKSPACE_IMAGES#ваша_иконка


что сложного? Не понятно.
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39077517
Zeke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

вот запрос из примера:

Код: sql
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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
select case when connect_by_isleaf = 1 then 0
            when level = 1             then 1
            else                           -1
       end as status, 
       level, 
       label||': '||name as title, 
       case when item_type = 'P' then 'fa-file-text-o'
            when item_type = 'S' then 'fa-caret-square-o-right'
            when item_type = 'T' then 'fa-minus-square-o'
       else null
       end as icon, 
       id as value, 
       case when tooltip is not null then name||' - '||tooltip||'% complete'
            else name
       end as tooltip,
       case when item_type = 'P' then 
               apex_util.prepare_url('f?p='||:app_id||':7:'||:app_session||':T:::P3_SELECTED_NODE,P7_PROJ_ID:'||id||','||id)
            when item_type = 'T' then
               apex_util.prepare_url('f?p='||:app_id||':9:'||:app_session||':T:::P3_SELECTED_NODE,P9_PROJ_ID,P9_TASK_ID:'||id||','||link)
            when item_type = 'S' then 
               apex_util.prepare_url('f?p='||:app_id||':10:'||:app_session||':T:::P3_SELECTED_NODE,P10_PROJ_ID,P10_ROWID:'||id||','||link)
       end as link 
 from (
select 'P' item_type,
       t.label label,
       to_char(a.PROJ_ID) id,
       null parent,
       a.project_name name,
       a.status tooltip,
       null link
  from eba_demo_tree_projects a, (select wwv_flow_lang.system_message('PROJECT') label from dual) t
union all
select 'T' item_type,
       u.label label,
       to_char(b.proj_id)||'-'||to_char(b.task_id) id,
       to_char(b.proj_id) parent,
       b.task_name name,
       null tooltip,
       b.proj_id||','||b.task_id link
  from eba_demo_tree_task b, (select wwv_flow_lang.system_message('TASK') label from dual) u
union all
select 'S' item_type,
       v.label label,
       to_char(c.proj_id)||'-'||to_char(c.task_id)||'-'||to_char(c.sub_id) id,
       to_char(c.proj_id)||'-'||to_char(c.task_id) parent,
       c.sub_name name,
       null tooltip,
       c.proj_id||','||c.rowid link
  from eba_demo_tree_subtask c, (select wwv_flow_lang.system_message('SUBTASK') label from dual) v
)
start with parent is null
connect by prior id = parent
order siblings by name



где здесь цвет указывается? Мне не нужна иконка
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39077558
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zekeгде здесь цвет указывается? Мне не нужна иконка
возможно колонка пропущена за ненадобностью.
Там где запрос есть подсказка с образцом запроса . Там есть колонка?
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39077665
Zeke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
стандартный запрос для дерева выглядит вот так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select case when connect_by_isleaf = 1 then 0 when level = 1 then 1 else -1 end as status,
level,
ENAME as title
NULL as icon,
EMPNO as value,
ENAME as tooltip,
NULL as link
from EMP
start with MGR is null
connect by prior EMPNO = MGR
order siblings by ENAME


отдельная колонка есть только для icon
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39081101
Zeke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, можно через JQuery это сделать

присваиваем у дерева в свойстве Static ID значение my_tree , а потом в Execute On Page Loads нужно написать код вида:

Код: javascript
1.
apex.jQuery("#my_tree").find("a:contains(#P81_CLASSIFIER_ID)").css("color","red");



но здесь я не знаю, как найти/сравнить id, который хранится в item'е P81_CLASSIFIER_ID

Подскажите, пжл ,как это сделать?
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39081181
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZekeВ общем, можно через JQuery это сделать

присваиваем у дерева в свойстве Static ID значение my_tree , а потом в Execute On Page Loads нужно написать код вида:

Код: javascript
1.
apex.jQuery("#my_tree").find("a:contains(#P81_CLASSIFIER_ID)").css("color","red");



но здесь я не знаю, как найти/сравнить id, который хранится в item'е P81_CLASSIFIER_ID

Подскажите, пжл ,как это сделать?

Может так?
Код: javascript
1.
apex.jQuery("#my_tree").find("a:contains"+$v('P81_CLASSIFIER_ID')).css("color","red");
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39081237
Zeke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel,

не работает, но уже совсем близко, думаю.

Короче, я хочу просто сравнить id в дереве с id в item'е и, если они равны, то сделать красным. Смысл такой
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39081248
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zekeотдельная колонка есть только для icon
я тебе про иконку и говорил. Если сделать её красным квадратом малевича. Не подойдёт?
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39081250
Zeke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Zekeотдельная колонка есть только для icon
я тебе про иконку и говорил. Если сделать её красным квадратом малевича. Не подойдёт?

К сожалению, нужен именно текст. Иначе бы я не парился так :(
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39081261
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Zekeblkangel,

не работает, но уже совсем близко, думаю.

Короче, я хочу просто сравнить id в дереве с id в item'е и, если они равны, то сделать красным. Смысл такой

В моей задумке найти элемент дерева и ID равной значению поля который ты привел, возможно надо подкорректировать Jquery
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39081265
Zeke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelZekeblkangel,

не работает, но уже совсем близко, думаю.

Короче, я хочу просто сравнить id в дереве с id в item'е и, если они равны, то сделать красным. Смысл такой

В моей задумке найти элемент дерева и ID равной значению поля который ты привел, возможно надо подкорректировать Jquery

да можно и так, только никак не могу написать правильный синтаксис :(
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39081276
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelВ моей задумке найти элемент дерева и ID равной значению поля который ты привел, возможно надо подкорректировать Jquery
там в запросе Demo на дерево нет колнки css или атрибуты или стиль?
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39081284
Zeke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

шаблон запроса для дерева выглядит вот так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select case when connect_by_isleaf = 1 then 0 when level = 1 then 1 else -1 end as status,
level,
ENAME as title
NULL as icon,
EMPNO as value,
ENAME as tooltip,
NULL as link
from EMP
start with MGR is null
connect by prior EMPNO = MGR
order siblings by ENAME
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39081342
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zeke,
фигово. Спасибо разрабам APEX.
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39081756
Zeke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Методом проб и ошибок было найдено решение:

Код: javascript
1.
apex.jQuery("#my_tree").find("a:contains("+ $.trim($("#P81_CLASSIFIER_ID :selected").text()) + ")").css("color","red");



но здесь идет поиск в дереве my_tree выбранного из выпадайки P81_CLASSIFIER_ID текста (ищется именно текст)

я хотел, чтобы id выбранной из выпадайки записи искался среди id узлов дерева. я так понимаю, что это можно реализовать через фразу a:contains у метода find
Здесь буква а отвечает за область в дереве, в которой будем искать. Как сделать, чтобы искалось среди того столбца/области в дереве, где хранятся именно id узлов/листьев я так и не нашел :(

среди примеров приводятся:

:contains - без всего
a:contains
div:contains
и т.д.
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39081774
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zeke,
ты бы забросил пример на ветку JS c HTML текстом дерева после рендеринга.
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39081783
Zeke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Zeke,
ты бы забросил пример на ветку JS c HTML текстом дерева после рендеринга.
я боюсь :-))))))
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39082390
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZekePetro123Zeke,
ты бы забросил пример на ветку JS c HTML текстом дерева после рендеринга.
я боюсь :-))))))
))))
Скажи постановщику что APEX (4.2 ????) это не может.
Либо ты выделяешь ноду восклицательным знаком иконкой. Либо идёшь изучать JS и будешь писать там приблуды (прикладной код вперемешку с системным).
Удачи!
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39082604
Zeke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

это для 5-й версии Apex все делалось
...
Рейтинг: 0 / 0
Подсветка узлов в дереве в apex 4
    #39082614
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zeke,
у меня 4-ка. Т.е. я понял, что в 5-ке по дереву ничего не изменилось. ОК.
...
Рейтинг: 0 / 0
39 сообщений из 39, показаны все 2 страниц
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Подсветка узлов в дереве в apex 4
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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