Oracle APEX 5.1 Скрыть столбец интерактивного отчета

#oracle-apex

#oracle-apex

Вопрос:

У меня есть интерактивный отчет в Oracle APEX 5.1, у меня есть несколько столбцов, которые я хочу скрыть, но разрешить конечному пользователю искать текст в скрытых столбцах.

Я вставил ниже в разделе JavaScript «Объявление функций и глобальных переменных» для страницы, содержащей интерактивный отчет —

 function hideColumn(id) {
    $(id).remove();
}  

и ниже в разделе «Выполнить при загрузке страницы» —

 hideColumn('#static-id-of-column-to-hide');  

Но при этом скрывается ТОЛЬКО заголовок столбца, данные для соответствующего столбца по-прежнему видны. Место для скрытого столбца занимает заголовок следующего столбца. Кроме того, я попробовал оба $ (id).remove(); и $ (id).hide(); , результат тот же.

Есть предложения?

Ответ №1:

Вместо этого вы могли бы использовать CSS, где your_report — это статический идентификатор для региона, а YOUR_COL обычно берется из псевдонима столбца. Вы можете убедиться в этом, просмотрев элемент с помощью инструмента браузера.

 #your_report td[headers="YOUR_COL"]
,#your_report th#YOUR_COL
{
  display: none;
}
  

Но вы можете обнаружить, что отчет не всегда отвечает ожидаемым требованиям в отношении настройки ширины столбца.

Если вы идете по маршруту JS, вы должны запустить это в динамическом действии, которое выполняется после обновления этого региона, а не только при загрузке страницы.

Комментарии:

1. Спасибо за ваш ответ. Мне просто нужно рабочее решение, CSS или JS или что-нибудь еще. Я добавил ниже, в разделе «Встроенный» CSS для страницы, что столбец не скрывается — #issues td[headers="Description"] ,#issues th#Description { display: none; } Кроме того, попытался создать динамическое действие для области отчета после обновления, поведение такое же. Он скрывает ТОЛЬКО заголовок столбца.

2. Изменили ли вы статический идентификатор вашего региона на «проблемы». Когда вы проверяете элемент на предмет ячейки заголовка, видите ли вы id =»Description»?

3. Спасибо, Скотт, проблема заключалась в статическом идентификаторе столбца, как вы указали. Итак, мне пришлось использовать статический идентификатор как для региона / отчета, так и для столбца. Это сработало #issues td[headers="hideDesc"] ,#issues th#hideDesc { display: none; }

4. Как вы упоминали ранее, у меня возникли небольшие проблемы с шириной столбцов. Есть идеи о том, как это решить / обойти?

Ответ №2:

Попробуйте это вместо этого. (в page inline CSS) Возможно, это исправит вашу проблему с шириной столбца.

 .a-IRR tr th:nth-child(X), .a-IRR tr td:nth-child(X) {
  display:none;
} 
  

где «X» — номер столбца, который вы хотите скрыть.