powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / IR узнать значение текущей строки и подсветить цветом
18 сообщений из 18, страница 1 из 1
IR узнать значение текущей строки и подсветить цветом
    #39434929
Только начинаю изучать APEX 5.1

Сгенерировал простейший интерактивный отчет на основе запроса

select id,name,name,dat from ttt

1. Каким кодом надо прописать, чтобы текущая строка отмечалась, скажем голубым фоном?
2. Каким кодом по клику на строке IR можно сохранить в переменной :P1_ID значение текущей id ?
...
Рейтинг: 0 / 0
IR узнать значение текущей строки и подсветить цветом
    #39435038
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никки Младший,

Можете использовать Interactive Grid, у него эти возможности уже есть.

Ну или, например, примерно:

В свойствах интерактивного отчета прописываете static id: test
В свойствах последнего столбца добавляете ид, который нужен, в html expression:

Код: html
1.
#LAST_COLUMN_ALIAS#<span class="IR_ROW_ID" style="display:none">#ID_COLUMN_ALIAS#</span>



в свойствах страницы:

Execute when Page Loads

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
  $('#test .a-IRR-table tr:gt(1)').on( 'click', function() {

    $(this).toggleClass('irClicked');

    if ( $(this).hasClass('irClicked') ) {

      $s('P1_ID',$(this).find('.IR_ROW_ID').text() );
      alert( $(this).find('.IR_ROW_ID').text() );
    }
  });



в свойство css > inline:

Код: javascript
1.
.irClicked td{ background-color:LightBlue ! important }
...
Рейтинг: 0 / 0
IR узнать значение текущей строки и подсветить цветом
    #39435044
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы не слетало:


Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
$('#test').on( "apexafterrefresh", function() {

  $('#test .a-IRR-table tr:gt(1)').on( 'click', function() {

    $(this).toggleClass('irClicked');

    if ( $(this).hasClass('irClicked') ) {

      $s('P1_ID',$(this).find('.IR_ROW_ID').text() );
      alert( $(this).find('.IR_ROW_ID').text() );
    }
  });
});
$('#test').trigger("apexafterrefresh");
...
Рейтинг: 0 / 0
IR узнать значение текущей строки и подсветить цветом
    #39435067
SvDev,
спасибо. Чтобы не слетало при сабмите? Где можно посмотреть ещё основополагающие куски кода?

На IG можно реализовать, чтобы дочерний грид открывался сразу под мастер-строкой, такое сложное редактируемое дерево
...
Рейтинг: 0 / 0
IR узнать значение текущей строки и подсветить цветом
    #39435076
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никки Младший,

Не слетало при фильтрах=. Весь код выше. Для submit-та нужно еще дописать выделение при загрузке из item. Тогда немного лучше переписать, примерно ниже.

Код: plsql
1.
#LAST_COLUMN_ALIAS#<span class="IR_ROW_ID" ir_row_val="#ID_COLUMN_ALIAS#"></span>


+ Поставить галку, чтобы нельзя было прятать этот столбец

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
$('#test .a-IRR-table tr:gt(1)').on( 'click', function() {

    $(this).toggleClass('irClicked');

    if ( $(this).hasClass('irClicked') ) {

      $s('P1_ID',$(this).find('.IR_ROW_ID').attr('ir_row_val') );
      alert( $(this).find('.IR_ROW_ID').attr('ir_row_val') );
    }
});

If ( $v('P1_ID') ) {

  $('#test .a-IRR-table .IR_ROW_ID["ir_row_val"="' + $v('P1_ID')  + '"]').closest('tr').addClass('irClicked');
}



Последнюю версию кода не проверял, но должен работать, если надо потом проверю.
Можете дописать еще к css:
Код: css
1.
.irClicked { cursor: pointer}


Если что, смотрите яваскрипт ошибки.

Деревья в строках IG или nested IG-такого нет. Я сталкивался только с ситуациями, где достаточно отдельного региона. На базе простых отчетов что-то такое было в виде плагинов, поищите.
Я даже плохо представляю как это должно выглядеть. Делал как-то nested tabular form в tabular form, такой изврат получился с тонной js, хочу после апгрейда убить и перейти на простой single page master detail.
...
Рейтинг: 0 / 0
IR узнать значение текущей строки и подсветить цветом
    #39435736
для моего запроса select id,name,name,dat from ttt (где id мой первичный ключ) что подставить вместо #ID_COLUMN_ALIAS#

#LAST_COLUMN_ALIAS#<span class="IR_ROW_ID" style="display:none">#ID_COLUMN_ALIAS#</span>

Их похоже выделяет цветом все строчки, в которые тыкнул(
...
Рейтинг: 0 / 0
IR узнать значение текущей строки и подсветить цветом
    #39435745
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никки Младший,

Любой уникальный идентификатор для строки (или комбинацию таких идентификаторов), который потом помещается в item: #ID#
...
Рейтинг: 0 / 0
IR узнать значение текущей строки и подсветить цветом
    #39435803
Спасибо. Начало обрабатываться. При клике строчка нужным способом помечается и в переменую ID заносится. Имеем

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
$('#test2').on( "apexafterrefresh", function() {
  $('#test2 .a-IRR-table tr:gt(1)').on( 'click', function() {
   $(this).toggleClass('irClicked');
    if ( $(this).hasClass('irClicked') ) {
      $s('P13_UNIT',$(this).find('.IR_ROW_ID').attr('ir_row_val') );
      alert( $(this).find('.IR_ROW_ID').attr('ir_row_val') );
    }    
  });
});

$('#test2').trigger("apexafterrefresh");
if ( $v('P13_UNIT') ) {
  $('#test2 .a-IRR-table .IR_ROW_ID["ir_row_val"="' + $v('P13_UNIT')  + '"]').closest('tr').addClass('irClicked');
}



Проблемы:
1. При нажатии на другую строчку отметка с первой строчки не пропадает( В итоге все строчки отчета "закрашиваются" (
2. На этой странице есть старая табулярная форма #test3 которая в запросе зависит от :P13_UNIT как ее рефрешить на экране при клике на первый репорт?
...
Рейтинг: 0 / 0
IR узнать значение текущей строки и подсветить цветом
    #39435902
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никки МладшийСпасибо. Начало обрабатываться. При клике строчка нужным способом помечается и в переменую ID заносится. Имеем

Проблемы:
1. При нажатии на другую строчку отметка с первой строчки не пропадает( В итоге все строчки отчета "закрашиваются" (

2. На этой странице есть старая табулярная форма #test3 которая в запросе зависит от :P13_UNIT как ее рефрешить на экране при клике на первый репорт?

т.е. если нажать на ту же строчку, выделение должно сохраниться ?
Попробуйте:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
$('#test2').on( "apexafterrefresh", function() {

  $('#test2 .a-IRR-table tr:gt(1)').on( 'click', function() {

    if ( $(this).hasClass('irClicked') ) {

      $s('P13_UNIT',$(this).find('.IR_ROW_ID').attr('ir_row_val') );
    } else {

      $('#test2 .irClicked').removeClass('irClicked');

      $s('P13_UNIT',$(this).find('.IR_ROW_ID').attr('ir_row_val') );
      $(this).addClass('irClicked');
    }
    apex.event.trigger( "#test3", "apexrefresh" );
  });

  if ( $v('P13_UNIT') ) {
    $('#test2 .a-IRR-table .IR_ROW_ID[ir_row_val="' + $v('P13_UNIT')  + '"]').closest('tr').addClass('irClicked');
  }
});

$('#test2').trigger("apexafterrefresh");


(сейчас времени проверять код нет, будут ошибки, пишите)
...
Рейтинг: 0 / 0
IR узнать значение текущей строки и подсветить цветом
    #39435915
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никки Младший,

P.S. В свойствах региона TEST3 не забудьте прописать Page Items to Submit: P13_UNIT
...
Рейтинг: 0 / 0
IR узнать значение текущей строки и подсветить цветом
    #39436049
лучше, но табулярная форма продолжает упорно не обновляться по клику(
...
Рейтинг: 0 / 0
IR узнать значение текущей строки и подсветить цветом
    #39436176
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никки Младший,

Именно Tabular Form, не Interactive Grid ?
Проверьте, чтобы шаблон региона был стандартный, не no template
+ проверьте, что у Tabular Form включен Partial Page Refresh.

Еще можете открыть в инструментах браузера консоль и выполнить: $("[id='test3']").length нужно, чтобы было равно 1.
И заодно посмотреть, что нет яваскрипт ошибок.

Если это IG, почему-то для него стандартный код с apexrefresh не работает (баг ?)
тогда замените строчку

Код: javascript
1.
apex.event.trigger( "#test3", "apexrefresh" );


на строчку
Код: javascript
1.
apex.region( "test3" ).refresh();
...
Рейтинг: 0 / 0
IR узнать значение текущей строки и подсветить цветом
    #39436289
нет у меня именно Tabular

Шаблон региона стандартный - Report
Включен Partial Page Refresh.

консоль $("[id='test3']").length выдает 1.
консоль apex.event.trigger( "#test3", "apexrefresh" ); выдает false
...
Рейтинг: 0 / 0
IR узнать значение текущей строки и подсветить цветом
    #39436370
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никки Младший,

Для Tabular работают обе команды. Посмотрите в интрументах браузера, вкладка сеть, при выполнении этих команд в консоли появляется ли новая строчка с запросом к серверу. Иногда, бывает, что refresh работает, но это не заметно. Если запрос к серверу есть, тогда проблема на стороне Page Items to Submit и SQL.

Тоже самое, можно сделать refresh через Dynamic Action (например на щелчек по кнопке), и проверить, работает или нет, но мне кажется этот вариант у вас тоже работать не будет, если предыдущие не работают. У меня есть подозрение что Page Items to Submit могли заполнить неверно, или static id заполнили какой-то другой неправильный идентификатор.
...
Рейтинг: 0 / 0
IR узнать значение текущей строки и подсветить цветом
    #39436388
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никки Младший,

Код я проверил, работающий.
Если ничего не помогает, можете сделать пример на apex.oracle.com, достаточно ссылки на страницу
...
Рейтинг: 0 / 0
IR узнать значение текущей строки и подсветить цветом
    #39436688
Спасибо.
В вкладке Network насколько я понимаю запрос на сервер идет.

автор У меня есть подозрение что Page Items to Submit могли заполнить неверно, или static id заполнили какой-то другой неправильный идентификатор.

Просто это поле item выбранное из списка.
static id - тоже примитивный.
Эта страница разрабатывалась еще в 4.2.1 , может в этом дело
Пока добавил жесткий submit после каждого клика - выглядит хуже зато работает.
Попробую на чистых 5.1.1 страницах сначала.
Кстати наше бажок

$('#test .a-IRR-table tr:gt(1)').on( 'click', function() {
так и на первую строчку кликает

авторМожете использовать Interactive Grid, у него эти возможности уже есть.
Есть встроенные возможности по раскраске кликнутой строки или тоже надо кодить?
...
Рейтинг: 0 / 0
IR узнать значение текущей строки и подсветить цветом
    #39436707
$('#test .a-IRR-table tr:gt(1)').on( 'click', function() {
поменял на
$('#test .a-IRR-table tr:gt(0)').on( 'click', function() {
...
Рейтинг: 0 / 0
IR узнать значение текущей строки и подсветить цветом
    #39436778
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никки Младший,

Если запрос на сервер идет, значит дело в sql: запрос возвращает те же данные. Это может быть, например, следствием того, что не перечислен нужный item в page item to submit, или он null.

По поводу gt(0), там может быть html разным в зависимости от того, включена ли внутренняя опция fixed header, так что зависит от этого.

В IG уже строки сами подсвечивается и есть dynamic actions с нужным событием.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / IR узнать значение текущей строки и подсветить цветом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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