通常,添加的行選擇器將存儲在apex_application.g_f01
數組中(有關這些數組的更多信息,請參閱see the apex api doc)。通過查看你的頁面的html輸出來驗證這一點。在您的表格形式html可以找到輸入數組映射(我使用的基礎上,EMP
表以表格形式):
<input type="hidden" name="fhdr" value="Select Row" id="fhdr_001" />
<input type="hidden" name="fmap" value="EMPNO" id="fmap_002" />
<input type="hidden" name="fhdr" value="Empno" id="fhdr_002" />
<input type="hidden" name="fmap" value="ENAME" id="fmap_003" />
<input type="hidden" name="fhdr" value="Ename" id="fhdr_003" />
<input type="hidden" name="fmap" value="JOB" id="fmap_004" />
<input type="hidden" name="fhdr" value="Job" id="fhdr_004" />
<input type="hidden" name="fmap" value="MGR" id="fmap_005" />
<input type="hidden" name="fhdr" value="Mgr" id="fhdr_005" />
<input type="hidden" name="fmap" value="HIREDATE" id="fmap_006" />
<input type="hidden" name="fhdr" value="Hiredate" id="fhdr_006" />
<input type="hidden" name="fmap" value="DEPTNO" id="fmap_007" />
<input type="hidden" name="fhdr" value="Deptno" id="fhdr_007" />
您需要的行選擇器(陣列F01),你認爲任何其他值你需要。 例如,我使用數組3:ENAME
。
DECLARE
v_rowno NUMBER;
BEGIN
for i in 1..apex_application.g_f01.count
loop
v_rowno := apex_application.g_f01(i);
apex_debug_message.log_message('row# selected: '||v_rowno);
apex_debug_message.log_message('Employee: '||apex_application.g_f03(v_rowno));
end loop;
END;
在我的表格中,我去了第2頁並選擇了2名員工。
這在輸出調試我到:
row# selected: 2
Employee: ADAMS
row# selected: 3
Employee: JAMES
,請注意該行選擇器值是報告的當前頁的ROWNUMBER。
如果您需要更新狀態,則需要引用包含記錄ID的數組。這樣你就可以在這些記錄上執行UPDATE
。
來源
2012-02-21 08:48:57
Tom
APEX 4.1具有新功能。您可以將流程與表格形式相關聯,將其範圍設置爲「對於創建和修改的行」。該過程將針對每個修改的行執行。因此,您可以使用APEX $ ROW_SELECTOR變量來測試是否選中了行選擇器(如果選中,則返回X,否則返回null)。它也有變量APEX $ ROW_NUM和APEX $ ROW_STATUS來獲取當前行的rownum和狀態。另外我使用apex_040100.wwv_flow_tabular_form.get_row_values函數來獲取按列名索引的行值的關聯數組。所以你可以在沒有醜陋的「apex_application.g_fXX」結構的情況下獲得列值。 – NoGotnu 2013-06-08 11:03:02