Oracle Apex - 下载 CSV 生成空报告

Oracle Apex - Download CSV produces an empty report

我目前在计算机上的 Internet Explorer 上使用 Oracle Apex 版本 18.2.0.00.12 运行ning Windows 10.

我在将交互式网格下载为 CSV 文件时遇到问题。

在我的 Apex 页面上,我有一个交互式网格和三个页面项目。页面项目中的两个 P200_DATE_FROM 和 P200_DATE_TO 是日期选择器项目。另一项是名为 "Submit" 的按钮,它的操作是 "Submit Page".

这是我的交互式网格的查询:

select * from kat_test
where repairdate between :P200_DATE_FROM and :P200_DATE_TO;

交互式网格中有四列:

问题 - Varchar2

月 - 数

星期 - 数字

维修日期 - 日期

我在交互式网格中更改的唯一设置是标题和 SQL 查询。

我将 P200_DATE_FROM 的来源更改为 PL/SQL 表示 returns 本月第一天的表达式。它被设置为使用 "Only when the current value in session state is null"。表达式为:

trunc(last_day(sysdate)-1, 'mm')

我更改了 P200_DATE_TO PL/SQL 表达式的来源 returns 当前日期。它也被设置为使用"Only when the current value in session state is null"。表达式为:

sysdate

当我 运行 页面时,它完全按照预期加载,即 P200_DATE_FROM 页面项目填充了当前月份的第一个日期,P200_DATE_TO 项目用当前日期填充,交互式网格显示正确的数据。

问题:当我 select 操作 -> 下载 -> CSV 时,CSV 文件下载并作为 Excel 文件打开,但仅显示 header 名称。 header 下方的单元格全部为空。但是,如果我更改 P200_DATE_FROM 页面项目 and/or 和 P200_DATE_TO 页面项目中的一个日期(或两者),然后按下提交按钮,页面将被提交,然后当我单击操作 -> 下载 -> CSV,Excel 文件打开,所有数据都完美显示(header 列和 header 下的数据)。

我不明白为什么当我最初加载页面时,交互式网格的 CSV 文件没有正确下载,但在我单击提交按钮后 CSV 文件却正确下载。

有没有人有什么想法?

提前致谢。

报告的查询可能包含如下所示的 WHERE 子句:

where some_date between :P200_DATE_FROM and :P200_DATE_TO

修改它,使其包含 NVL 函数,其第二个参数反映项目的默认值,即

where some_date between nvl(:P200_DATE_FROM, trunc(last_day(sysdate)-1, 'mm'))
                    and nvl(:P200_DATE_TO, sysdate)

运行页面,下载CSV;有什么改进吗?

我认为您只需要将这些项目的名称放在 SQL 旁边的字段 "Items to submit" 中。下载时,我认为它使用会话中项目的值重新处理 SQL。如果你不把那些项目放在那里,值就不会进入会话。输入以逗号分隔的项目名称。之后,我认为您的 SQL

中有必要进行任何更改