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

时间:2018-10-29 20:26:42

标签: oracle oracle-apex oracle-apex-5 oracle-apex-5.1

我当前正在运行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文件打开,所有数据都完美显示(列标题和标题下面的数据)。

我不明白为什么最初加载页面时,Interactive Grid的CSV文件无法正确下载,但是单击提交按钮后,CSV文件却可以正确下载。

有人有什么想法吗?

谢谢。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

报表的查询可能包含一个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;有什么改善吗?