2011-11-09 37 views
0

是否有可能,如果有,那麼如何創建兩個頁面(一個報表,一個編輯表單),但將報表基於視圖,並將編輯表單放在表格上?如何基於Apex中的視圖/表創建報表/表單組合?

我有一個非常複雜的視圖,這是不可更新的,所以我需要編輯表單基於表中的原始數據。這怎麼可能?

回答

2

首先,您需要創建報告並將其基於您的表格。 然後創建您的表單。

要連接它們,您需要知道表單所基於的表的主鍵。我會假設你的表有一個由1或2列組成的PK,而你的自動行取&+ DML過程使用這個PK。 PK in form 這是因爲PK值形成了報表中的行與表單中的行之間的鏈接。

在您的報告屬性中,然後找到鏈接列部分 - 或者如果您想在報告中使用列作爲鏈接​​,則轉到該列的選項,並在其中找到鏈接列部分。鏈接必須是「自定義目標的鏈接」。選擇一個圖標或定義鏈接文本。 報告屬性上的鏈接意味着您必須在單行列圖標或自定義鏈接之間進行選擇。如果鏈接已經就位,請在報告查詢中創建一個新的空列,然後配置該列中的鏈接。 Link column attributes

Settings: 
Target: Page in this Application 
Page: the page number of your form 
Clear Cache: page number of your form 

然後你沿着唯一標識用於表單(你PK)表中的行的值傳遞。 例子:

Item 1: Name: "P2_EMPNO" Value: "#EMPNO#" 

這是它的主要內容,並且還怎麼當你使用嚮導一份報告形式的表單和報表之間的聯繫產生。

更復雜的情況? 例如,您的PK有2列以上。在Apex 4.1中,您可以將自動行提取和dml基於您的表的rowid(救生員)。在這種情況下,您可以考慮在視圖中包含表格的記錄rowid(當然,它在視圖中必須是別名)。然後,您可以將此rowid傳遞給包含表單頁面上的rowid的項目。

不在4.1上,或者rowid不是一個選項,並且PK有兩個以上的列:您需要編寫自己的行提取和dml流程,或者使用替代觸發器創建視圖。我認爲這是一個更好的做法,可以查看您的表格,並將PK列連接到您的視圖的列中。然後該列可以在頂點生成的過程中充當您的PK值。無論哪種方式,您都需要想出一種方法來識別行,並在表單頁面上提供正確的抓取和處理方式。見this question for some more info