我是相对的APEX noob。
我正在针对10gR2数据库运行APEX 4.0。
我编写了一个带有一些输入的查询(两个日期字段,用于开始和结束,以及一个文本字段用于进一步过滤)并创建一个动态报告,当我拉动输入变量时(): START_DATE,:END_DATE,:OFFICE)或者用静态值替换它们。
我想在页面上创建一个表单,将这些值提交到动态报表页面,以便在查询中过滤用户在点击报表时看到的结果。
我没有太多运气找到一个好的分步示例。我创建了一个包含两个日期选择器和一个LOV选择下拉列表的空白页面,但我不确定如何将这些值最佳地转换为动态报告。
有人可以为我指出正确的文件吗?
答案 0 :(得分:9)
以下是使用Apex 4.1开发的,但除了一些外观变化之外,原则应该是相同的。
数据来自标准的scott.emp架构。
<强>概述强>
这是第1页,用户可以输入empno和\或hiredate。
按下提交后,将显示不同页面上的以下报告:
工作原理
在第1页,我创建了显示的三个项目。文本项称为P1_EMPNO和P1_HIREDATE。按钮的操作是“提交页面”
仍然在第1页上,创建一个包含以下值的分支:
此分支导航到第2页(尚未开发),并使用第1页中的值设置第2页上的项目值。
创建一个新页面,在本例中,这将被引用到第2页。
在第2页上,使用以下查询创建新的交互式报告:
select e.*
from emp e
接下来,在与报告相同的区域中创建两个文本项,并调用它们:P2_EMPNO和:P2_HIREDATE。我发现在开发过程中显示这些项很有用,这样您就可以看到正确的值正在传递给页面。一旦您对报告感到满意,您始终可以将它们设置为隐藏。
最后修改交互式报告使用的查询以使用第1页提供的值
运行该应用程序。
答案 1 :(得分:1)
您希望在查询中引用您的页面项,这意味着您必须在查询将获取其会话状态之前提交您的页面。当我提供一个小参数表格时,我所做的就是在那里放一个按钮(即标记为'查询'),进行提交。
在报告中,您可以参考您的商品。例如,如果您有2个项P1_DATE_START
和P1_DATE_END
,则您的查询可能如下所示:
SELECT firstname, lastname, job
FROM employees
WHERE employment_start BETWEEN to_date(:P1_DATE_START) AND to_date(:P1_DATE_END);