Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / IR узнать значение текущей строки и подсветить цветом / 18 сообщений из 18, страница 1 из 1
07.04.2017, 16:32
    #39434929
IR узнать значение текущей строки и подсветить цветом
Только начинаю изучать APEX 5.1

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

select id,name,name,dat from ttt

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

Можете использовать 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
07.04.2017, 19:24
    #39435044
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IR узнать значение текущей строки и подсветить цветом
Чтобы не слетало:


Код: 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
07.04.2017, 21:21
    #39435067
IR узнать значение текущей строки и подсветить цветом
SvDev,
спасибо. Чтобы не слетало при сабмите? Где можно посмотреть ещё основополагающие куски кода?

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

Не слетало при фильтрах=. Весь код выше. Для 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
10.04.2017, 11:52
    #39435736
IR узнать значение текущей строки и подсветить цветом
для моего запроса 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
10.04.2017, 12:04
    #39435745
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IR узнать значение текущей строки и подсветить цветом
Никки Младший,

Любой уникальный идентификатор для строки (или комбинацию таких идентификаторов), который потом помещается в item: #ID#
...
Рейтинг: 0 / 0
10.04.2017, 13:37
    #39435803
IR узнать значение текущей строки и подсветить цветом
Спасибо. Начало обрабатываться. При клике строчка нужным способом помечается и в переменую 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
10.04.2017, 15:15
    #39435902
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IR узнать значение текущей строки и подсветить цветом
Никки МладшийСпасибо. Начало обрабатываться. При клике строчка нужным способом помечается и в переменую 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
10.04.2017, 15:21
    #39435915
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IR узнать значение текущей строки и подсветить цветом
Никки Младший,

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

Именно 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
11.04.2017, 09:08
    #39436289
IR узнать значение текущей строки и подсветить цветом
нет у меня именно Tabular

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

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

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

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

Код я проверил, работающий.
Если ничего не помогает, можете сделать пример на apex.oracle.com, достаточно ссылки на страницу
...
Рейтинг: 0 / 0
11.04.2017, 17:28
    #39436688
IR узнать значение текущей строки и подсветить цветом
Спасибо.
В вкладке 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
11.04.2017, 17:42
    #39436707
IR узнать значение текущей строки и подсветить цветом
$('#test .a-IRR-table tr:gt(1)').on( 'click', function() {
поменял на
$('#test .a-IRR-table tr:gt(0)').on( 'click', function() {
...
Рейтинг: 0 / 0
11.04.2017, 19:41
    #39436778
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IR узнать значение текущей строки и подсветить цветом
Никки Младший,

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

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

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


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