2012-12-01 21 views
1

我正在創建一個APEX應用程序,允許學生應用於作業展示位置,並允許管理員查看所有交互。我想創建一個頁面來顯示所有學生的應用程序。創建頁面以顯示外鍵數據

首先,這裏所涉及的表的數據庫模式: enter image description here

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

我有一個學生名單的報告,我添加了一個「查看應用程序」柱。我已將「查看應用程序」列鏈接起來,並轉到新頁面。問題是,我不知道如何顯示管理員正在查找的學生的所有應用程序。

我能想到的唯一方法是將RECORD_NUMBERstudents表中的PK)傳遞到新頁面,然後使用它執行一些SQL,並使用返回的內容填充頁面字段。但我不知道該怎麼做。我不知道如何獲得在SQL中使用的RECORD_NUMBER值,我不知道如何用SQL返回的內容填充表單域。

任何幫助表示讚賞。

回答

1

只要創建爲admin一個新的頁面,並輸入查詢像

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

你知道在哪裏添加查詢?

+0

我不這樣做,我不知道如何將record_number放入查詢中(它使用「Column Link」傳遞給頁面)或使用查詢結果填充表單域。 –

+0

你想顯示一個特定學生的所有應用程序或所有應用程序嗎? –

+0

Oracle的2天指南舉例說明如何添加或修改查詢:[修改部門報告](http://docs.oracle.com/cd/E37097_01/doc/doc.42/e35122/build_app.htm#BCEBJJGB ) –

1

所以你有一個頁面列出應用程序和已經申請的學生。我們會打電話給那個頁面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 

現在編輯,使其指向第2頁,並與該行的record_number用戶點擊填充P2_RECORD_NUMBER第1頁上的鏈接。我沒有Apex在我面前,但我認爲你可以通過編輯該列的報告屬性來實現。此外,您可以使用http://site.com/f?p=<APP_ID>:<PAGE_ID>:0::::P2_RECORD_NUMBER:<record_number>表單的網址。 (我正在從內存中做這件事,並可能冒號的數量是錯誤的。)

如果上面的查詢沒有返回任何行,您還需要一些默認文本。

+0

非常有用,謝謝。我按照步驟操作,並在我的查詢中使用了':P17_RECORD_NUMBER',但當我導航到頁面時,它會引發此錯誤:'ERR-1002無法在應用程序「289」中找到項目「P17_RECORD_NUMBER」的項目ID。在頁面上放入'P17_RECORD_NUMBER'的字段?因爲沒有一個,我只想在我的查詢中使用記錄號碼。 –

+0

您是否在第17頁上添加了名爲P17_RECORD_NUMBER的隱藏頁面項目?您需要一個位置來存儲記錄編號,直到Apex可以運行查詢。這篇博客文章說,如果在製作鏈接時在文本框中有空格,也會發生這種情況:http://oraclequirks.blogspot.com/2012/02/err-1002-unable-to-find-item -id-for.html – eaolson