ホーム > アプリケーション・コンポーネントの追加 > フォームの作成 > フォームの手動作成
前へ |
次へ |
次のステップを実行することによって、フォームを手動で作成することもできます。
(ページ・アイテムのコンテナとして機能する)HTMLリージョンを作成します。
リージョンに表示するアイテムを作成します。
プロセスおよびブランチを作成します。
HTMLリージョンを作成することによって手動でフォームを作成するには、次のステップを実行します。
該当するページ定義にナビゲートします。「ページ定義へのアクセス」を参照してください。
HTMLリージョンを作成します。
「リージョン」で、「作成」アイコンをクリックします。
リージョン・タイプに「HTML」を選択します。
画面に表示されるステップに従います。
ページへのアイテムの追加を開始します。
「アイテム」で、「作成」アイコンをクリックします。
画面に表示されるステップに従います。
フォームを作成したら、次に、基礎となるデータベース表またはビューに対して挿入または更新を行うことによって、ユーザーが入力したデータを処理します。フォームを処理する方法には、3通りあります。
フォームを実装するための一般的な方法の1つは、行の自動処理(DML)プロセスを手動で作成することです。この方法には、3つのメリットがあります。1つ目は、SQLコードを指定する必要がないことです。2つ目は、Oracle Application ExpressによってDMLプロセスが実行されることです。3つ目は、このプロセスによって、ロストした更新の検出が自動的に実行されることです。ロストした更新の検出によって、データに同時にアクセスできるアプリケーションのデータ整合性が保証されます。
この方法を実装するには、次のステップを実行します。
アイテムを追加し、「アイテム・ソース」タイプを「データベース列」に定義し、大/小文字が区別される列名を指定します。
オプション「常にキャッシュ値より優先」を選択します。
行の自動処理(DML)プロセスを作成するには、次のステップを実行します。
該当するページ定義にナビゲートします。「ページ定義へのアクセス」を参照してください。
「プロセス」で、「作成」アイコンをクリックします。
プロセスの「データ操作」を選択します。
プロセス・カテゴリの「行の自動処理(DML)」を選択します。
次のプロセス属性を指定します。
「名前」フィールドで、プロセスを識別するための名前を入力します。
「順序」フィールドで、順序番号を指定します。
「ポイント」リストから、適切なプロセス・ポイントを選択します。通常、「ロード時 - ヘッダーの後」を選択します。
「タイプ」リストから、「行の自動処理(DML)」を選択します。
画面に表示されるステップに従います。
この方法でフォームを処理するには、挿入、更新および削除操作を実行する1つ以上のプロセスを作成します。Application Expressエンジンですべての操作を透過的に実行するかわりに、操作の制御はユーザーが行います。
たとえば、3つのアイテムを持つフォームが存在すると想定します。
P1_ID
: 表に現在表示されている行の主キーを格納するための非表示アイテム。
P1_FIRST_NAME
: ユーザー入力用のテキスト・フィールド。
P1_LAST_NAME
: ユーザー入力用のテキスト・フィールド。
また、「挿入」、「更新」および「削除」というラベルの3つのボタンがあるとします。さらに、3つの列id
、first_name
およびlast_name
を含む表Tがあるとします。この表には、値を指定しなかった場合に自動的にID
列が移入されるトリガーがあります。
新しい行の挿入を処理するには、ユーザーが「挿入」ボタンをクリックしたときに実行されるPL/SQLの条件付きプロセスを作成します。次に例を示します。
BEGIN INSERT INTO T ( first_name, last_name ) VALUES (:P1_FIRST_NAME, :P1_LAST_NAME); END;
行の更新を処理するには、PL/SQLの条件付きプロセスをもう1つ作成します。次に例を示します。
BEGIN UPDATE T SET first_name = :P1_FIRST_NAME, last_name = :P1_LAST_NAME WHERE ID = :P1_ID; END;
行の削除を処理するには、ユーザーが「削除」ボタンをクリックしたときに実行される条件付きプロセスを作成します。次に例を示します。
BEGIN DELETE FROM T WHERE ID = :P1_ID; END;
アプリケーションによっては、表へのすべてのアクセスを単一または少数のPL/SQLパッケージにまとめて処理することが適しています。DML操作を処理するパッケージを作成した場合は、このパッケージのプロシージャおよびファンクションを、送信後のPL/SQLプロセスからコールして、リクエストの挿入、更新および削除を処理できます。
Oracle Application Expressでは、ロード時またはApplication Expressエンジンによるページのレンダリング時にフォームが移入されます。フォームを移入するには、次のステップを実行します。
プロセスを作成し、タイプを「行の自動フェッチ」に定義します。
非表示のセッション・ステート・アイテムを参照することによって、フォームを手動で移入します。
行の自動フェッチ・プロセスを作成するには、次のステップを実行します。
該当するページ定義にナビゲートします。「ページ定義へのアクセス」を参照してください。
「プロセス」で、「作成」をクリックします。
プロセス・タイプの「データ操作」を選択します。
プロセス・カテゴリの「行の自動フェッチ」を選択します。
次のプロセス属性を指定します。
「名前」フィールドで、プロセスを識別するための名前を入力します。
「順序」フィールドで、順序番号を指定します。
「ポイント」リストから、適切なプロセス・ポイントを選択します。
「タイプ」リストから、「行の自動フェッチ」を選択します。
画面に表示されるステップに従います。
非表示のセッション・ステート・アイテムを参照することによって、フォームを手動で移入することもできます。たとえば、PL/SQLタイプのOracle Application Expressプロセスの次のコードでは、ename
およびsal
の値が設定されます。この例では、P2_ID
という名前の非表示のセッション・ステートを参照することによってフォームを手動で移入する方法も示します。
FOR C1 in (SELECT ename, sal FROM emp WHERE ID=:P2_ID) LOOP :P2_ENAME := C1.ename; :P2_SAL := C1.sal; END LOOP;
この例では、次のとおりです。
C1
は、暗黙カーソルです。
P2_ID
の値は、設定済です。
このプロセスのプロセス・ポイントは、「ロード時 - リージョンの前」またはこれ以前に実行するように設定されます。