2017-03-31 101 views
0

我正在Oracle Application Express(APEX)中開發應用程序。oracle apex中的「general」變量

第一頁包含作爲表格報告的項目列表。

單擊任意行可轉至下一頁,可以編輯記錄。我曾與下面的設置來實現它:

  • 鏈接列:link to custom target
  • 目標:Page in this application

之前,這是好的。

我的問題是如何將實際報告傳遞到下一頁?

我的表格,這是報告的基礎主鍵(ID),也是所有者&標題組合是唯一的。目前ID列未包含在報告中。

此外,第二頁當前不包含顯示ID的字段,因爲此信息對用戶不重要。

我知道我可以在報告中設置ID列,並在下一頁創建一個只讀(甚至隱藏)文本框,但是我正在尋找一個更優雅的解決方案。解決這個問題的標準方法是什麼?

回答

1

我不知道你在問: 「如何將頁面1中的值傳遞給頁面2,以便頁面2可以使用該值執行查詢並顯示結果。如果是這樣,這裏是如何完成的。」

例如,在頁面P1上,選擇設計頁面左側「渲染」窗格中區域下的報告區域屬性。

在右側的屬性屬性下,查找鏈接列並將其設置爲「鏈接到自定義目標」。然後點擊目標。

選擇頁面,然後在名稱下左側的設置項目部分中,選擇PK ID字段以接收傳遞的值ex:P2_ID。在Value下的右側選擇要傳遞值的字段,例如:#P1_ID#,然後單擊確定。 現在,當單擊第1頁報告上的鏈接時,P1_ID由Apex保存到會話狀態並傳遞給P2,然後P2使用傳遞的值執行FETCH。 你可以閱讀更多關於會話狀態here。另外,請注意,有些安全設置會影響哪些參數可以在URL中傳遞。 單擊開發人員工具欄中的「會話」可以查看正在傳遞的會話變量。

如果你的意思是「我如何存放在會在任何地方應用來訪問應用價值 - 就像一個全局變量」然後看Application Items

一如既往,請在這些帖子中包含版本號。

1

當你創建一個目標頁面讓我們說第3頁 你創建一些項目,讓我們說P3_ITEM_1,P3_ITEM_2等

您可以通過URL在原始頁面

值分配給他們每個人

完整的APEX URL語法如下:

http://apex.oracle.com/pls/apex/f?p=AppId:PageId:Session:Request:Debug:ClearCache:Params:ParamValues:PrinterFriendly

讓我們來仔細看看:

  • http:// - 協議,可以是http或https: apex.oracle.com - 您的域名/主機/服務器,無論您想調用它。也可以是本地主機。
  • /pls - 表示您正在使用帶有mod_plsql的Oracle HTTP Server。如果您正在使用APEX Listener或嵌入式PL/SQL網關,則此部分已過時/缺失。
  • /apex - 來自dads.conf文件(這是應用程序服務器上的文件或配置了目標數據庫的EPG)中的條目 - 對於EPG,只有一個條目指向本地主機,如果是OAS您可以有多個條目,每個條目指向另一個數據庫
  • /f?p = - 調用過程「f」並將參數「p」設置爲字符串的完整剩餘部分。記住:APEX使用mod_plsql。 「f」是公開程序,這是APEX的主要入口點。或者你可以說:「f」是APEX。
  • 的AppId - 數或應用
  • 的別名:的PageId - 數或頁
  • 的別名:會話 - 唯一的會話ID,可以是0爲公共頁面或空(然後APEX創建一個新會話)
  • :請求 - 請求關鍵字。這基本上是自由文本,只是一個字符串,你可以指定在一個進程或區域條件上作出反應。例如你可以傳遞關鍵字「CREATE」,並在你的頁面的刪除按鈕上有一個條件,說「如果請求是CREATE,不要顯示這個按鈕」。換句話說:使用REQUEST來控制頁面的行爲。 按下按鈕時,該按鈕將REQUEST設置爲按鈕值(例如SAVE),以便您可以在頁面處理(提交)階段控制進程。
  • :調試 - 設置爲YES(大寫!)開啓調試模式,該模式在瀏覽器窗口中呈現調試消息和時間戳。這有助於檢測您網頁的錯誤行爲或性能問題以及其他一切。每隔一個值然後YES將調試模式關閉
  • :ClearCache - 您可以在此處放置頁面標識或頁面標識列表(以逗號分隔)以清除這些頁面的高速緩存(將會話狀態設置爲空,... )。但還有更多:RP重置頁面上的報告分頁,集合名稱刪除集合,APP清除所有頁面和應用程序項目,SESSION與APP相同,但對於所有應用程序,session-id已經用於。
  • :參數 - 逗號分隔的頁面項目名稱列表。好的做法是僅設置您要訪問的頁面上的那些頁面項目。接受頁面項目以及應用程序項目。
  • :ParamValues - 逗號分隔的值列表。每個值都分配給ParamNameList中提供的相應參數(第一個值分配給第一個參數,第二個值分配給第二個參數,等等......)。 這裏的訣竅是沒有包含逗號「,」或冒號「:」的值。兩者都會導致副作用和錯誤,因爲解析URL時APEX會感到困惑。使用逗號作品,如果用斜槓括起來: \ 123,89。
  • :PrinterFriendly - 設置爲YES(大寫!)將頁面切換到PrinterFriendly-Mode,使用Printerfriendly模板渲染頁面。您還可以在條件中使用PRINTER_FRIENDLY變量以PrinterFriendly-Mode隱藏區域或其他元素。

在你的情況,你會使用PARAMS:ParamValues像這樣:

P3_ITEM_1,P3_ITEM_2:someValue_1,someValue_2

Documentation

+0

謝謝,已經有一些新的信息。不過,我需要通過'ID',並按照我的理解,我可以在'REQUEST'使用唯一不變的文本,所以不工作。我唯一的選擇是將它發送給控件的值嗎? –

+0

可以動態形成的URL(即整個目的在這裏),我懷疑,你不能獲得ID發送它作爲一個參數。什麼是「控制價值」? – Typo