當您使用的apex_item.select_list
函數(或任何apex_item
封裝的另一功能)APEX允許您使用apex_application.g_fXX
集合,其中XX
- 數,其中傳遞作爲第一參數。這些集合包含表格形式的數據,可以在頁面提交後通過PL/SQL進行訪問。
比方說,我們有一個表:
create table tab_form (
s_id number,
department_id number,
field_to_update varchar2(100));
insert into tab_form (s_id, department_id, field_to_update) values (1, 1, 'field is not updated');
insert into tab_form (s_id, department_id, field_to_update) values (1, 2, 'field is not updated');
insert into tab_form (s_id, department_id, field_to_update) values (1, 3, 'field is not updated');
insert into tab_form (s_id, department_id, field_to_update) values (2, 1, 'field is not updated');
insert into tab_form (s_id, department_id, field_to_update) values (2, 2, 'field is not updated');
insert into tab_form (s_id, department_id, field_to_update) values (2, 3, 'field is not updated');
insert into tab_form (s_id, department_id, field_to_update) values (3, 1, 'field is not updated');
insert into tab_form (s_id, department_id, field_to_update) values (3, 2, 'field is not updated');
insert into tab_form (s_id, department_id, field_to_update) values (4, 3, 'field is not updated');
你需要做以下。用這樣的查詢創建報告:
select APEX_ITEM.TEXT(1, s_id) S_ID,
APEX_ITEM.TEXT(2, department_id) DEPARTMENT_ID,
FIELD_TO_UPDATE,
APEX_ITEM.SELECT_LIST(3, null, 'Approve;0,Reject;1', null, 'YES', null, '%') ar
from TAB_FORM
使用apex_item
包開始使用集合g_f01
,g_f02
和g_f03
的。接下來,創建一個按鈕來提交和一個進程,當按下按鈕Submit
時,該進程將被執行。該過程可能包含如下代碼:
begin
forall i in 1 .. apex_application.g_f03.count
update tab_form
set field_to_update = case when apex_application.g_f03(i) = '0' then 'approved by the user'
when apex_application.g_f03(i) = '1' then 'rejected by the user'
else 'the user hasn''t decided yet' end
where s_id = apex_application.g_f01(i)
and department_id = apex_application.g_f02(i);
end;
在此代碼中,您可以實現處理用戶輸入所需的任何邏輯。
你可以看到這個例子在這裏在頁面上:https://apex.oracle.com/pls/apex/f?p=34599:8
的Submit
按鈕執行上面的代碼中,Reset
按鈕改變值設置爲默認。
謝謝你,這很好,很直接。 – user7308691