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

Такая проблема:
В дереве есть узлы, в которых может быть размещено в скобках число, например "Сообщения(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
07.12.2011, 11:31
    #37562598
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсветка узлов в дереве в apex 4
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
07.12.2011, 12:38
    #37562779
electrod
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсветка узлов в дереве в apex 4
Спасибо!

Если стоит apex 4.0 в котором нельщя записывать текст в ID?
...
Рейтинг: 0 / 0
07.12.2011, 13:11
    #37562868
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсветка узлов в дереве в apex 4
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
07.12.2011, 14:08
    #37563023
electrod
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсветка узлов в дереве в apex 4
Да, я перепутал.

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

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

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

Можно, прочитайте про функцию .each()
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
17.06.2013, 15:38
    #38300224
SHeLEST1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсветка узлов в дереве в apex 4
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
18.06.2013, 01:56
    #38300839
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсветка узлов в дереве в apex 4
SHeLEST1местоположение сия скрипта

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

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

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

Вам никто не мешает сделать Ваш собственный плагин для региона с деревом и отображать его как удобно.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
14.10.2015, 11:39
    #39076345
Zeke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсветка узлов в дереве в apex 4
кто-нибудь знает, как подсветить узел в 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
14.10.2015, 12:57
    #39076479
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсветка узлов в дереве в apex 4
Zeke,

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

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

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

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


что сложного? Не понятно.
...
Рейтинг: 0 / 0
15.10.2015, 12:57
    #39077517
Zeke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсветка узлов в дереве в apex 4
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
15.10.2015, 13:15
    #39077558
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсветка узлов в дереве в apex 4
Zekeгде здесь цвет указывается? Мне не нужна иконка
возможно колонка пропущена за ненадобностью.
Там где запрос есть подсказка с образцом запроса . Там есть колонка?
...
Рейтинг: 0 / 0
15.10.2015, 14:12
    #39077665
Zeke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсветка узлов в дереве в apex 4
стандартный запрос для дерева выглядит вот так:

Код: 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
20.10.2015, 12:27
    #39081101
Zeke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсветка узлов в дереве в apex 4
В общем, можно через 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
20.10.2015, 13:24
    #39081181
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсветка узлов в дереве в apex 4
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
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Подсветка узлов в дереве в apex 4 / 25 сообщений из 39, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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