2017-04-26 53 views
1

我已經創建了一個Master-Detail頁面。詳細信息區域是報告區域。 假設,主地區記錄製造的產品及其細節。
假設詳細區域記錄涉及的員工列表(多行)及其詳細信息。
爲了獲得重發,EMPNO列存在於詳細表格中,但不包含EMP_NAME列。 我的問題是,我想在詳細區域顯示一個非數據庫列EMP_NAME。 EMP_NAME保存基於EMPNO列值的值(查詢EMP表後)。如何實現這一目標?請幫忙。 (我用的Apex 4.2.6)如何忽略APEX報告中非數據庫列的狀態

感謝, -Anand

+0

@Ftaveras 讓我再舉一個例子。想要如何完成。 對於訂單管理主頁 - 詳細信息頁面,詳細信息部分將會有多個產品。 只有PRODUCT_ID存在於詳細表中。 但是,我們顯示PRODUCT_NAME。它是如何實現的? 通過加入對產品的查詢,我們可以獲得PRODUCT_NAME。很好,它有助於在記錄分錄期間。 但是如何添加新行?如何在我們選擇產品ID後立即顯示PRODUCT_NAME。 有人可以幫忙嗎。謝謝。 –

回答

0

你可以標量子查詢欄添加到查詢:

select ..., 
     (select emp_name from emp where emp.empno = det.empno) as emp_name 
    from details det 
    ... 

APEX將會使這個顯示爲默認文本列。

但是,如果您希望此功能也顯示新記錄,那還不夠。你可以代替改變顯示爲EMPNO列的屬性來選擇列表,然後定義LOV爲

select ename, empno from emp order by ename 

現在不是在EMPNO鍵入值並試圖獲得的名稱出現在另一列中,名稱將出現在選擇列表而不是 EMPNO。或者您可以像這樣顯示EMPNO:

select empno||' - '||ename as d, empno from emp order by 1 
+0

只要列屬性是「顯示爲文本(轉義特殊字符,不保存狀態)」,它的工作原理。 但是,在添加新記錄期間,我無法填充字段EMP_NAME,因爲它僅顯示。 如果我將其設置爲「文本字段」,則在導航或添加行時出現錯誤。 「發生了1個錯誤•自用戶啓動更新過程以來,數據庫中當前版本的數據已更改...」 –

+0

@anandgp查看更新回答 –

+0

暫時讓我們忽略如何填充列 假設我將輸入值。 但是如何只在添加記錄期間從顯示更改爲文本? 如果我將其設置爲文本字段,當我嘗試保存記錄時它會不會再次出現錯誤(之前在保存文本字段時它提供了錯誤)? –

0

您可以使用_NOSUBMIT來修改忽略的列名稱。您的查詢將如下所示:

SELECT D.EMPNO 
... 
, EMP.EMP_NAME AS EMP_NAME_NOSUBMIT 
, FROM ... 

Apex將忽略nosubmit字段。

+0

我向EMP_NAME_NOSUBMIT添加了EMP_NAME列。 –

+0

我向EMP_NAME_NOSUBMIT添加了EMP_NAME專欄。 我把列屬性「顯示爲」改爲「測試字段」。 我使用ajax調用來在LOV選擇EMPNO之後填充它的值。 但是,只要我提交頁面,甚至導航記錄,我得到以下錯誤 - 「1發生錯誤•數據庫中的當前版本的數據已更改,因爲用戶啓動更新過程...」 如果我更改列屬性「顯示爲「to」顯示爲文本(轉義特殊字符,不保存狀態)「 當我導航記錄時,它顯示EMP_NAME。 但在添加新記錄期間,無法填充EMP_NAME,因爲它僅顯示。 –

+0

請將「Test Field」改爲「Text Field」 –