[英]In Oracle Apex how to you set pagination for a report based on a column value?
I have this table with a column of type Date called "Creation_Date" that contains the creation date for each row:我有一个名为“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 |
+--------------+--------------+---------------+
I want a classic report for this table in Oracle Apex to appear to the user like this:我希望 Oracle Apex 中此表的经典报告向用户显示如下:
12/1/2022 >
+--------------+--------------+
| TaskName | Validated_By |
+--------------+--------------+
| Task A | Jim |
| Task B | John |
| Task C | Jill |
+--------------+--------------+
And when they click on the arrow next to the date the rows for the previous day show up:当他们点击日期旁边的箭头时,前一天的行就会出现:
< 11/30/2022 >
+--------------+--------------+
| TaskName | Validated_By |
+--------------+--------------+
| Task D | John |
| Task E | John |
| Task F | Bill |
+--------------+--------------+
And when they press again, the rows for the day before that show up, etc:当他们再次按下时,前一天的行会出现,等等:
< 11/29/2022 >
+--------------+--------------+
| TaskName | Validated_By |
+--------------+--------------+
| Task G | Goerge |
| Task H | George |
+--------------+--------------+
Is there a built-in way in Oracle Apex to do this for a Classic Report (or for an Interactive Report, doesn't matter)? Oracle Apex 中是否有内置方法可以为经典报告(或交互式报告,无关紧要)执行此操作?
As @Scott statet, nothing built in but this shouldn't be that hard to code (for classic report/interactive report).作为@Scott statet,没有内置任何内容,但这应该不难编码(对于经典报告/交互式报告)。 Make sure you have an item
P1_DATE
that holds the date for which the rows are shown.确保您有一个项目
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
);
Report source would be:报告来源将是:
SELECT task, name, dt FROM test_data WHERE dt = TO_DATE(:P1_DATE,'MM/DD/YYYY');
P1_DATE_PREV
.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');
P1_PAGE
to P1_PAGE_PREV
P1_PAGE
设置为P1_PAGE_PREV
P1_DATE_NEXT
.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');
P1_PAGE
to P1_PAGE_NEXT
P1_PAGE
设置为P1_PAGE_NEXT
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.