Как в Oracle Apex установить разбиение на страницы для отчета на основе значения столбца?

У меня есть эта таблица со столбцом типа Date, называемым «Creation_Date», который содержит дату создания для каждой строки:

+--------------+--------------+---------------+
| TaskName     | Validated_By | Creation_Date |
+--------------+--------------+---------------+
| Task A       | Jim          | 12/1/2022     |
| Task B       | John         | 12/1/2022     |
| Task C       | Jill         | 12/1/2022     |
| Task D       | John         | 11/30/2022    |
| Task E       | John         | 11/30/2022    |
| Task F       | Bill         | 11/30/2022    |
| Task G       | Goerge       | 11/29/2022    |
| Task H       | George       | 11/29/2022    |
+--------------+--------------+---------------+

Я хочу, чтобы классический отчет для этой таблицы в Oracle Apex отображался для пользователя следующим образом:

12/1/2022 >
+--------------+--------------+
| TaskName     | Validated_By |
+--------------+--------------+
| Task A       | Jim          |
| Task B       | John         |
| Task C       | Jill         |
+--------------+--------------+

И когда они нажимают на стрелку рядом с датой, появляются строки за предыдущий день:

< 11/30/2022 >
+--------------+--------------+
| TaskName     | Validated_By |
+--------------+--------------+
| Task D       | John         |
| Task E       | John         |
| Task F       | Bill         |
+--------------+--------------+

И когда они нажимают снова, появляются строки за день до этого и т. д.:

< 11/29/2022 >
+--------------+--------------+
| TaskName     | Validated_By |
+--------------+--------------+
| Task G       | Goerge       |
| Task H       | George       |
+--------------+--------------+

Есть ли в Oracle Apex встроенный способ сделать это для классического отчета (или для интерактивного отчета, не имеет значения)?

ничего не встроено, но, вероятно, есть несколько вариантов, которые помогут вам в этом. Фасетный поиск может дать вам что-то на желаемом уровне blogs.oracle.com/apex/post/apex-192-faceted-search

Scott 02.12.2022 04:13

@ Скотт, а что касается аспекта, каким будет его «Тип»?

User104163 02.12.2022 07:58
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как заявляет @Scott, ничего не встроено, но это не должно быть так сложно закодировать (для классического отчета/интерактивного отчета). Убедитесь, что у вас есть элемент P1_DATE, содержащий дату, для которой отображаются строки.

--- create test data
CREATE TABLE test_data (task, name, dt) AS 
(

SELECT 'Task A','Jim',    TO_DATE('12/1/2022','MM/DD/YYYY') FROM DUAL UNION ALL     
SELECT 'Task B','John',   TO_DATE('12/1/2022','MM/DD/YYYY') FROM DUAL UNION ALL     
SELECT 'Task C','Jill',   TO_DATE('12/1/2022','MM/DD/YYYY') FROM DUAL UNION ALL     
SELECT 'Task D','John',   TO_DATE('11/30/2022','MM/DD/YYYY') FROM DUAL UNION ALL    
SELECT 'Task E','John',   TO_DATE('11/30/2022','MM/DD/YYYY') FROM DUAL UNION ALL    
SELECT 'Task F','Bill',   TO_DATE('11/30/2022','MM/DD/YYYY') FROM DUAL UNION ALL    
SELECT 'Task G','Goerge', TO_DATE('11/29/2022','MM/DD/YYYY') FROM DUAL UNION ALL    
SELECT 'Task H','George', TO_DATE('11/29/2022','MM/DD/YYYY') FROM DUAL 
);
Отчет

Источником отчета будет:

SELECT task, name, dt FROM test_data WHERE dt = TO_DATE(:P1_DATE,'MM/DD/YYYY');
Предыдущая конфигурация кнопки:
  • Элемент страницы P1_DATE_PREV.
  • Источник:
SELECT MAX(dt) FROM  test_data WHERE dt < TO_DATE(:P1_DATE,'MM/DD/YYYY');
  • Чтобы скрыть кнопку, если нет предыдущей даты: добавьте условие на стороне сервера «возвращенные строки»
SELECT 1 FROM  test_data WHERE dt < TO_DATE(:P1_DATE,'MM/DD/YYYY');
  • Кнопка «предыдущая» будет перенаправлять на страницу 1 и устанавливать P1_PAGE на P1_PAGE_PREV
Следующая конфигурация кнопки:
  • Элемент страницы P1_DATE_NEXT.
  • Источник:
SELECT MIN(dt) FROM  test_data WHERE dt > TO_DATE(:P1_DATE,'MM/DD/YYYY');
  • Чтобы скрыть кнопку, если нет следующей даты: добавьте условие на стороне сервера «строки возвращены»
SELECT 1 FROM  test_data WHERE dt > TO_DATE(:P1_DATE,'MM/DD/YYYY');
  • Кнопка «Далее» будет перенаправлять на страницу 1 и устанавливать P1_PAGE на P1_PAGE_NEXT

У меня есть связанный с этим вопрос: если отчет и кнопки «Далее» и «Назад» находятся в одном регионе, приведет ли обновление только этого региона к повторной проверке условий на стороне сервера для кнопок? Потому что я пробовал, и условия на стороне сервера, похоже, игнорируются.

User104163 04.12.2022 15:52

Условия на стороне сервера оцениваются только во время рендеринга страницы, поэтому то, что вы видите, является ожидаемым поведением. Мое вышеприведенное решение написано в предположении, что вся страница обновляется и используются перенаправления. Если вы хотите обновить только регион, это не сработает. Я считаю, что цель кнопки не изменится при обновлении кнопки. Для решения с частичным обновлением страницы вам необходимо использовать динамические действия для управления состоянием элементов страницы и действиями кнопок/видимостью кнопок. Это немного больше работы

Koen Lostrie 04.12.2022 16:49

Другие вопросы по теме