3.1 G_Fnn配列(レガシー)の使用

重要:

G_Fnn配列のサポートはレガシーであり、将来のリリースで削除される予定です。かわりに対話グリッドの使用をお薦めします。

APEX_APPLICATION.G_Fnn配列(nn01から50の範囲)は、APEXページに対するHTMLフォーム要素を動的に生成できるようにするAPEX_ITEMファンクション(APEX_ITEM.TEXTAPEX_ITEM.SELECT_LISTなど)とともに使用します。ページの送信時に、アイテム値がサーバーに送信され、APEX_APPLICATION.G_Fnn配列として提供されます。

APEX_APPLICATION.G_Fnnは、APEX_ITEMコンテキストでのみ使用します。その他のコンテキスト(PL/SQLコードのプレーン配列処理など)では、APEX_T_VARCHAR2タイプおよびAPEX_STRINGパッケージ内のプロシージャおよびファンクションを使用します。

ノート:

APEX_APPLICATION.G_Fnnを使用する場合、APEX_UTIL内のTABLE_TO_STRINGおよびSTRING_TO_TABLEファンクションは非推奨です。かわりにAPEX_STRING.TABLE_TO_STRINGおよびAPEX_STRING.STRING_TO_TABLEを使用してください。

G_Fnn配列の参照

次の例では、APEX_ITEMを使用してEMP表に表形式を手動で作成します。enamesalおよびcomm列では、APEX_ITEM.TEXTファンクションを使用して行ごとにHTMLテキスト・フィールドを生成します。また、各列がそれぞれの配列に格納されるように問合せ内のアイテムごとに一意のp_idxパラメータが渡されます。

  1. 新しいページで、次の例のようなSQL問合せを含むクラシック・レポートを追加します。
    SELECT
      empno,
      APEX_ITEM.HIDDEN(1,empno)||
      APEX_ITEM.TEXT(2,ename) ename,
      APEX_ITEM.TEXT(3,job) job,
      mgr,
      APEX_ITEM.DATE_POPUP(4,rownum,hiredate,'dd-mon-yyyy') hiredate,
      APEX_ITEM.TEXT(5,sal) sal,
      APEX_ITEM.TEXT(6,comm) comm,
      deptno
    FROM emp
    ORDER BY 1
  2. すべてのレポート列(ページ・デザイナの「セキュリティ」プロパティ下)で、「特殊文字をエスケープ」を無効にします。
  3. ページに「送信」ボタンを追加します。
  4. アプリケーションを実行します。

送信時プロセス内の値の参照

PL/SQL変数APEX_APPLICATION.G_F01からAPEX_APPLICATION.G_F50を使用して、表形式フォームによってポストされた値を参照できます。この要素は配列のため、値を直接参照できます。たとえば、次のコード・ブロックは、すべての従業員名をテキスト・ブロックとして収集し、P3_G_F01_CONTENTSアイテムの値として格納します。

:P3_G_F01_CONTENTS := '';
for i IN 1..APEX_APPLICATION.G_F01.COUNT LOOP
    :P3_G_F01_CONTENTS := :P3_G_F01_CONTENTS 
                       || 'element '||I||' has a value of '||APEX_APPLICATION.G_F02(i) || chr(10);
END LOOP;

APEX_ITEM.CHECKBOXを使用して表示したチェック・ボックスには、選択されている行に対してのみAPEX_APPLICATION配列の値が含まれることに注意してください。送信したすべての行に対応するAPEX_APPLICATION配列のエントリを含めることができる他のアイテム(TEXTTEXTAREAおよびDATE_POPUP)と異なり、チェック・ボックスには、行が選択されている場合にのみAPEX_APPLICATION配列のエントリが含まれます。