我正在开发一个移动应用程序,应该允许学生搜索职位空缺。我使用向导创建了一个带有列表视图的表单。列表视图仅显示未超过截止日期的作业标题(可用作业)
单击作业标题后,它会重定向到学生可以查看更多作业详细信息的表单。这些值由向导自动传递。
现在虽然这一切都很棒,但我需要来自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))
答案 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)
我相当肯定,如果你有很多需要经过的专栏,它可能不是一个很好的解决方案,但它很容易理解并实现一些额外的专栏。