创建页面以使用外键显示数据

时间:2012-12-01 17:25:17

标签: oracle oracle-apex

我正在创建一个APEX应用程序,允许学生申请工作实习,并允许管理员查看所有交互。我想创建一个页面来显示所有学生的应用程序。

首先,这是所涉及的表的数据库模式: enter image description here

全尺寸链接:http://i.stack.imgur.com/QU1Pr.png

我有一份包含学生名单的报告,并且我添加了“查看应用程序”列。我已将“查看应用程序”列链接起来,然后转到新页面。问题是,我不知道如何显示管理员当前正在查找的学生的所有应用程序。

我能想到的唯一方法是将RECORD_NUMBERstudents表中的PK)传递给新页面,然后使用它执行一些SQL,并使用返回的内容填充页面字段。但我不知道该怎么做。我不知道如何获取要在SQL中使用的RECORD_NUMBER值,我不知道如何使用SQL返回的表单字段填充表单字段。

感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

因此,您有一个页面列出了应用程序和已申请的学生。我们将调用该页面1.如果我了解您要执行的操作,则可以创建包含报表和隐藏页面项的页面2。调用页面项P2_RECORD_NUMBER。

使用查询创建报告:

SELECT *
  FROM tbl_jobs j
 INNER JOIN tbl_applications a on a.job_id = j.id
 INNER JOIN tbl_students s ON s.record_number = j.record_number
 WHERE s.record_number = :P2_RECORD_NUMBER

现在编辑第1页上的链接,使其指向第2页,并使用用户单击的行的record_number填充P2_RECORD_NUMBER。我没有Apex在我面前,但我认为你可以通过编辑该列的报告属性来做到这一点。此外,您可以使用http://site.com/f?p=<APP_ID>:<PAGE_ID>:0::::P2_RECORD_NUMBER:<record_number>形式的网址。 (我是从记忆中做到这一点,可能有错误的冒号数。)

如果上面的查询没有返回任何行,您还需要一些默认文本。

答案 1 :(得分:1)

只需为管理员创建一个新页面,然后输入类似

的查询
SELECT *
  FROM tbl_students s
  JOIN tbl_applications a USING (record_number)
  JOIN tbl_jobs j ON a.job_id = j.id

您知道在哪里添加查询吗?

相关问题