powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Изменение строки фильтра в интерактивном отчете
10 сообщений из 10, страница 1 из 1
Изменение строки фильтра в интерактивном отчете
    #37187985
Andrey Zay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В интерактивном отчете нужна колонка, в которой будет ссылка + картинка + текст.
Картинка меняется в зависимости от данных (добавить/редактировать), поэтому генерю имя картинки в самом запросе.

В качестве упрощенного примера запрос такой:
Код: plaintext
1.
2.
select empno, 
  '<img src="#IMAGE_PREFIX#ed-item.gif" alt="">' || ename ename 
from emp

В самом отчете все замечательно, картинка отображается. Но если выбрать в заголовке колонки фильтр по значению, то в условии фильтрации получаем:
Ename = '<img src="/i/ed-item.gif" alt="">ADAMS'
Как избавится от '<img src="/i/ed-item.gif" alt="">' в условии фильтрации или заменить это на картинку?
Пример тут: http://apex.oracle.com/pls/apex/f?p=50387:8
...
Рейтинг: 0 / 0
Изменение строки фильтра в интерактивном отчете
    #37188168
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey Zay, можно сделать немного по другому. Вариант 1: выбирать в отчёте значение поля, наименование картинки в скрытом поле, имя меняется в зависимости от, в блоке column link в поле Link text указать
Код: plaintext
<img src="#WORKSPACE_IMAGES##YOUR_IMAGE#" />#VALUE#
. Таким образом избавляемся от тэгов в фильтре. И вообще так правильней - отделить данные от представления. Второй вариант - выбирать не наименование картинки, а наименование стиля и использовать его, при этом картинка будет фоновым изображением.
...
Рейтинг: 0 / 0
Изменение строки фильтра в интерактивном отчете
    #37188411
Andrey Zay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoid,

Это был первый вариант моего запроса, только если колонка с названием картинки скрыта, APEX не раскрывает значение #YOUR_IMAGE#, а показывать название картинки в отчете мне совсем не хочется.

Модифицировал пример
Запрос:
Код: plaintext
1.
2.
3.
4.
select empno, 
  '<img src="#IMAGE_PREFIX#ed-item.gif" alt="">' || ename ename,
  ename txt_only,
  'ed-item.gif' img_name
from emp

Ссылка из колонки txt_name:
Код: plaintext
<img src="#IMAGE_PREFIX##IMG_NAME#" alt=""> #TXT_ONLY#

При добавлении колонки через Actions - Select Column - Добавить колонку Img name в список видимых в таблице появляется и колонка с названием картинки, и сама картинка. Убираем - картинка пропадает
...
Рейтинг: 0 / 0
Изменение строки фильтра в интерактивном отчете
    #37188749
Andrey Zay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первое корявое решение: обернуть имя картинки, выбираемое из запроса в
Код: plaintext
<span style="display: none"></span>
Заголовок колонки сделать пробелом, действия пользователя запретить все. Почти незаметно получается :)
...
Рейтинг: 0 / 0
Изменение строки фильтра в интерактивном отчете
    #37188972
SvUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Там же есть тип столбца hidden, чем оно не устраивает?
...
Рейтинг: 0 / 0
Изменение строки фильтра в интерактивном отчете
    #37189134
Andrey Zay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvUser,

При установке типа столбца Hidden не подставляется переменная #IMG_NAME#.
Вообще она почему-то подставляется, только в том случае, когда отчет прорисовывает колонку IMG_NAME. Даже если ее просто спрятать картинка пропадет.
...
Рейтинг: 0 / 0
Изменение строки фильтра в интерактивном отчете
    #37189267
Andrey Zay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Способ 2 (вдруг кто тоже столкнется с этой проблемой):
Добавляем Dynamic Action на After Refresh региона интерактивного отчета с кодом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
function htmlDecode(input){
  var e = document.createElement('div');
  e.innerHTML = input;
   return  e.childNodes[ 0 ].nodeValue;
}

$('td.fielddata').each(function(){
   this .getElementsByTagName('A')[ 0 ].innerHTML = htmlDecode( this .getElementsByTagName('A')[ 0 ].innerHTML);
});
...
Рейтинг: 0 / 0
Изменение строки фильтра в интерактивном отчете
    #37189548
SvUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проверил, действительно есть глюки.
В остальных столбцах substitutions работают нормально, но в столбцы Link Text только в том случае, если с ней уже есть связь или это отображаемый элемент. Т.е. если взять другой столбец без ссылки, и в каком-нибудь столбце типа Link Attributes, который сам по себе ни на что не влияет, поставить #IMG_NAME#, то в твоем столбце в Link Text он начнет понимать #IMG_NAME# даже когда столбец скрыт. Определенно баг.

Использую APEX 4.0.1
...
Рейтинг: 0 / 0
Изменение строки фильтра в интерактивном отчете
    #37189653
SvUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Правда, пожалуй, такой багнутый вариант юзать всё же не стоит.
Лучший способ:
Link Text: <span class="ir_icon"></span>#TXT_ONLY#
Link Attributes: class="#IR_COL_CLASS#"
В Link Attributes столбец ir_col_class уже нормально заменяться должен. Ну а картинки через css.
...
Рейтинг: 0 / 0
Изменение строки фильтра в интерактивном отчете
    #37193477
Andrey Zay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvUser,

огромное спасибо за исследования. Действительно, если "потрогать" невидимую колонку в link attributes, она начинает и в ссылке отображаться. Итог такой:
Запрос:
Код: plaintext
1.
2.
3.
select empno, 
  ename txt_only,
  'ed-item.gif' img_name
from emp

Колонка img_name -- невидимая
Колонка txt_only со ссылкой:
Код: plaintext
<img src="#IMAGE_PREFIX##IMG_NAME#" alt=""> #TXT_ONLY#
в link attributes записываем фейк:
Код: plaintext
class="#IMG_NAME#"

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


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