在APEX中创建表单以在交互式报表的查询中设置变量

时间:2011-10-17 19:19:11

标签: oracle oracle-apex

我是相对的APEX noob。

我正在针对10gR2数据库运行APEX 4.0。

我编写了一个带有一些输入的查询(两个日期字段,用于开始和结束,以及一个文本字段用于进一步过滤)并创建一个动态报告,当我拉动输入变量时(): START_DATE,:END_DATE,:OFFICE)或者用静态值替换它们。

我想在页面上创建一个表单,将这些值提交到动态报表页面,以便在查询中过滤用户在点击报表时看到的结果。

我没有太多运气找到一个好的分步示例。我创建了一个包含两个日期选择器和一个LOV选择下拉列表的空白页面,但我不确定如何将这些值最佳地转换为动态报告。

有人可以为我指出正确的文件吗?

2 个答案:

答案 0 :(得分:9)

以下是使用Apex 4.1开发的,但除了一些外观变化之外,原则应该是相同的。

数据来自标准的scott.emp架构。

<强>概述

这是第1页,用户可以输入empno和\或hiredate。

enter image description here

按下提交后,将显示不同页面上的以下报告:

enter image description here

工作原理

在第1页,我创建了显示的三个项目。文本项称为P1_EMPNO和P1_HIREDATE。按钮的操作是“提交页面”

仍然在第1页上,创建一个包含以下值的分支:

enter image description here

此分支导航到第2页(尚未开发),并使用第1页中的值设置第2页上的项目值。

创建一个新页面,在本例中,这将被引用到第2页。

在第2页上,使用以下查询创建新的交互式报告:

select e.* 
from emp e

接下来,在与报告相同的区域中创建两个文本项,并调用它们:P2_EMPNO和:P2_HIREDATE。我发现在开发过程中显示这些项很有用,这样您就可以看到正确的值正在传递给页面。一旦您对报告感到满意,您始终可以将它们设置为隐藏。

最后修改交互式报告使用的查询以使用第1页提供的值

enter image description here

运行该应用程序。

答案 1 :(得分:1)

您希望在查询中引用您的页面项,这意味着您必须在查询将获取其会话状态之前提交您的页面。当我提供一个小参数表格时,我所做的就是在那里放一个按钮(即标记为'查询'),进行提交。

在报告中,您可以参考您的商品。例如,如果您有2个项P1_DATE_STARTP1_DATE_END,则您的查询可能如下所示:

SELECT firstname, lastname, job
  FROM employees
 WHERE employment_start BETWEEN to_date(:P1_DATE_START) AND to_date(:P1_DATE_END);