在Oracle Apex中的页面之间传递值

时间:2016-10-20 22:25:31

标签: oracle-apex

我正在开发一个移动应用程序,应该允许学生搜索职位空缺。我使用向导创建了一个带有列表视图的表单。列表视图仅显示未超过截止日期的作业标题(可用作业)

单击作业标题后,它会重定向到学生可以查看更多作业详细信息的表单。这些值由向导自动传递。

现在虽然这一切都很棒,但我需要来自3个不同表格的信息,而向导对我没有帮助。

我已经基于sql查询创建了一个列表视图,并且还创建了一个基于sql查询的表单。我试图创建自动提取过程以将值从列表视图传递到表单视图,但我尝试过的任何工作都没有。我仔细分析了向导创建的表单,看看它是如何完成的,但对我来说没什么用,我真的很想以这种方式去做。

作为参考,这是我用于列表视图的sql代码(除了where子句,它与表单视图相同)

     T1.JOB_TITLE,
        T1.SALARY,
        T1.JOB_DESCRIPTION,
        T1.START_DATE,
        T1.CLOSING_DATE,
        T1.METHOD_ID,
        T3.METHOD_NAME,
        T1.SITE_ID,
        T2.CITY,
        T2.ADDRESS_FIRST_LINE,
        T2.EMAIL,
        T2.COMPANY_NAME

FROM JOB T1

JOIN SITE T2 ON (T2.SITE_ID = T1.SITE_ID)

JOIN APPLICATION_METHOD T3 ON (T3.METHOD_ID = T1.METHOD_ID)
Where (T1.Closing_Date >(Select Current_Date from dual)) 

2 个答案:

答案 0 :(得分:2)

有两种方法可以解决这个问题:

1)如果您只需将所需的值传递到表单页面,请编辑表单区域的值,然后打开"链接目标"属性(假设您正在使用APEX 5 Page Designer)。在那里,您可以将多个值传递到表单页面上的项目。

2)相反,如果您需要在Form页面上派生这些值,请在表单页面上添加After Header过程,并使用PL / SQL在此过程中从其他表中执行查找。您可以使用绑定变量语法来引用项目并更新会话状态。例如:

begin
    for c1 in (select val1, val2 from my_other_table where id = :P3_ID) loop
        :P3_ITEM1 := c1.val1;
        :P3_ITEM2 := c1.val2;
        exit;
    end loop;
end;

答案 1 :(得分:1)

我设法通过添加更多项目并选择从项目属性(Source)返回单行的Sql查询来添加其他列。

因此,为了获取method_name而不是与最终用户无关的ID,我使用了这段代码:

SELECT METHOD_NAME FROM APPLICATION_METHOD
WHERE (METHOD_ID = :P3_METHOD_ID)

我相当肯定,如果你有很多需要经过的专栏,它可能不是一个很好的解决方案,但它很容易理解并实现一些额外的专栏。