Oracle Apex - 下载 CSV 会生成空报告

问题描述 投票:0回答:3

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

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

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

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

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

交互式网格中有四列:

问题 - Varchar2

月份 - 数字

周 - 数字

维修日期 - 日期

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

我将 P200_DATE_FROM 的源更改为返回当月第一天的 PL/SQL 表达式。它被设置为“仅当会话状态中的当前值为空时”使用。其表达式为:

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

我更改了返回当前日期的 P200_DATE_TO PL/SQL 表达式的来源。它还设置为“仅当会话状态中的当前值为空时”使用。其表达式为:

sysdate

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

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

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

有人有什么想法吗?

提前谢谢您。

oracle oracle-apex oracle-apex-5 oracle-apex-5.1
3个回答
5
投票

我认为您只需将这些项目的名称放入 SQL 旁边的“要提交的项目”字段中即可。下载时,我认为它会使用会话中项目的值重新处理 SQL。如果您不将这些项目放在那里,则这些值不会进入会话。输入以逗号分隔的项目名称。之后,我认为您的 SQL 中需要进行任何更改


3
投票

报告的查询可能包含一个

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;有什么改进吗?


0
投票

我亲爱的。 我遇到的问题与上面那位同事的问题非常相似。然而,即使更改报告日期并发送,当我下载它时,它还是空白。

有人有什么建议吗?

© www.soinside.com 2019 - 2024. All rights reserved.