通常、追加された行セレクターは配列に格納されますapex_application.g_f01
(これらの配列の詳細については、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
行セレクターの値は、レポートの現在のページの行番号であることに注意してください。
ステータスを更新する必要がある場合は、レコードの ID を保持する配列を参照する必要があります。UPDATE
このようにして、それらのレコードに対して実行できるようになります。