Подсветка выбранной строки в отчетах Apex.
В состав Oracle Application Express входит ряд шаблонов для отчетов, но, к сожалению, ни одни из них не предоставляет функциональности подсветки выбранной строки. Оказывается исправить эту несправедливость не так уж и сложно... Для этого достаточно лишь немного скорректировать шаблон отчета. Что такое шаблон отчета и зачем он нужен хорошо описано в документации по Apex.
Итак, заходим в репозитарий шаблонов apex приложения, расположенный в "Shared Components"->"User Interface"->"Templates":
Далее, создаем точную копию любого шаблона (копию делаем для того, чтобы в отчетах, которые уже используют этот шаблон не изменили своего поведения). В наше случае возьмем за основу стандартный шаблон отчета:
Даем название для нового шаблона - "Standard (highlight row)".
Далее, переходим к редактированию нового шаблона:Переходим к блоку "Column Templates" шаблона, где предоставляется возможность использовать все свои знания HTML :).
Добавляем в блоке "Column Template 1" строку " style="background-color:#CCCCCC" ", чтобы обозначит цвет фона для конкретной строки отчета. Далее, необходимо описать условия, при которых строка будет иметь указанный цвет фона. Для этого, в блоке "Column Template 1 Condition" выбираем значение "Use Based on PL/SQL Expression", а в блоке "Column Template 1 Expression" прописываем: " '#OBJECT_TYPE#' = :P1_TYPE ". Таким образом, у строки отчета будет отличный цвет фона только в том случае, если значение в колонке OBJECT_TYPE совпадает со значением, прописанным в невидимом поле P1_TYPE (происхождение и назначение этого поля можно узнать из этого топика про Master-Detail):Кроме всего прочего, в блоке "Column Template 2" прописываем стандартное значение. Этот шаблон будет применяться для всех тех строк отчета, для которых не отработал первый шаблон. Далее, очищаем поле "Background color for checked row", так как цвет фона мы уже прописали в первом шаблоне, а так же в поле "Background color for current row" прописываем значение "#EEEEEE", тем самым отчет будет подсвечивать строку, над которой сейчас находится указатель мыши пользователя:
Далее, переходим к описанию отчета, для которого хотим применить новый шаблон:
Переходим в блок "Layout and Pagination" в выпадающем списке "Report Template" выбираем название ранее созданного шаблона - "template: 17. Standard (highlight row)":Вот и все дела... Работу описанного выше приложения можно, как всегда, посмотреть на apex.oracle.com.
7 комментариев:
Все сделала по инструкции. При наведении мышки на разукрашенную строку, цвет ее фона меняется на цвет по умолчанию, как победить?
Как варианты:
1. Убедиться в том, что используется именно тот шаблон, который подсвечивает строку.
2. Открыть отчет в FireBug, убедиться в наличии событий onmouseout/onmouseover.
3. Убедиться, что цвет подсветки не совпадает с цветом фона.
Скажите можно ли в шаблонах использовать свои собственные строки замены?
Хочу в секцию Before Each Row вставить свою строку вида «onclick="location.href='#USER_LINK#'"»
Скажите можно ли в шаблонах использовать свои собственные строки замены?
Свои строки замены использовать можно. Об этом немного писалось в статье Вывод ревизии subversion в приложениях Apex.
Не работает в интерактивных отчетах. там нельзя выбрать новый шаблон для отчета
А и в самом деле, что делать в случае интерактивного отчёта? Я хочу, чтобы MASTER-строка, для которой выведены DETAIL-строки, была бы подсвечена, но в интерактивном отчёте шаблон выбрать нельзя.
В interactive report есть штатные средства раскраски строк в меню "Actions"-"Format"-"Highlight" запущенного на выполнение отчета. После настройки раскраски можно сохранить "As Default Report Settings", после чего раскраска будет действовать у всех пользователей.
Отправить комментарий