ページの作成ウィザードを実行し、「レガシー・ページ」→「表形式フォーム」を選択して、レガシー表形式フォームを作成します。
注意:
表形式フォームは、レガシー・アプリケーション・コンポーネントです。引き続きサポートされますが、開発者はかわりに対話グリッドを作成することをお薦めします。
レガシー表形式フォームを使用すると、1つのページから表内の複数の行を一度に更新できます。ウィザードを使用して作成したレガシー表形式フォームでは、データベース表内の複数の行に対して更新、挿入および削除操作を実行できます。表形式フォームには、バックグラウンドでコミット時ロックを実行してデータの整合性を維持する組込みの複数行更新プロセスが備わっています。
親トピック: アプリケーション・レガシー・コンポーネントの管理
ウィザードを使用して作成した表形式フォームには、自動DMLプロセスが含まれています。これらのウィザードでは、データベース表内の複数の行に対して更新、挿入および削除操作を実行するフォームを作成します。または、表形式フォームを手動で作成することも可能であり、その場合は、更新可能なレポート・リージョンまたは更新可能な列を含む標準レポート・リージョンのいずれかを作成し、それとともに表形式フォームのデータを処理するカスタムPL/SQLページ・プロセスを使用します。
表形式フォームを作成する場合のベスト・プラクティス
表形式フォームを作成するときには、次のベスト・プラクティスを実施することをお薦めします。
表形式フォームのSQL文の選択リストは、ウィザードを使用して生成した後、変更しないでください。問合せを変更する場合は、更新可能な列の値が、Application Expressエンジンによってデータベースから問い合せられた後に変更されていないことを確認してください。
表示タイプ特有のJavaScriptロジックを使用する表示タイプにカスタムJavaScriptを追加しないでください(ラジオ・グループ、単純なチェック・ボックス、ポップアップ・キーLOVなど)。
親トピック: レガシー表形式フォームの管理
表形式フォームを実行すると、データは更新可能な列を含むレポートとしてレンダリングされます。これらの列は、様々なフォーム要素(テキスト・フィールド、テキスト領域、日付ピッカー、選択リスト、ラジオ・グループなど)を使用して示されます。
デフォルトでは、日付列は「日付ピッカー」アイテム・タイプを使用して作成されます。他の列については、ユーザー・インタフェースのデフォルト値を定義しておくことで、LOVに基づく選択リスト、または数値フィールドと大きなテキスト領域として自動的に作成できます。
数値フィールドおよび日付フィールドについては、日付と数値の書式マスクを事前に定義したり、初期フォームの生成後にそれらの書式マスクを適用することもできます。
また、各レポートには、(行セレクタと呼ばれる)チェック・ボックス列も含まれています。ユーザーは、この行セレクタを使用して1つ以上の列を選択し、データを更新または削除します。行を追加するには、「行の追加」をクリックします。
ヒント:
列属性を編集して、特定の列の外観を制御できます。
関連項目:
Oracle Application Express SQLワークショップ・ガイドの「ユーザー・インタフェースのデフォルト値の管理」
親トピック: レガシー表形式フォームの管理
表形式フォームは、基礎となる表の列に問合せ列が関連付けられているSQL問合せに基づきます。単一レコードとは異なり、表形式フォームではデータはセッション・ステートに格納されません。表形式フォーム・ページが送信されると、表形式フォームのデータは組込みのデータ操作言語(DML)またはカスタムPL/SQLページ・プロセスを使用して処理されます。
自動DMLを備えた表形式フォームでは、複数行操作に対して次の2つのプロセスが使用されます。
複数行の更新(MRU)プロセスでは、作成操作と更新操作を実行します。
複数行の削除(MRD)プロセスでは、1つ以上の行に対するリクエストを削除します。
MRUプロセスとMRDプロセスでは、基礎となる表名と主キー列を参照します。DMLプロセスで正しいレコードを識別できるようにするには、主キー列を表形式フォームのSQL問合せに含め、レポート列を非表示にするか、表示専用(ステートを保存)にする必要があります。新しいレコードの場合、主キー値をNULL
にして、新しいレコードとして識別されるようにする必要があります。削除操作は、削除対象の行の行番号を参照することによって実行されます。ユーザーが、カレント・ページ上の1つ以上の行をチェックし、「削除」ボタンをクリックすると、行番号によって対応する主キー値が識別され、一致する行が削除されます。
ウィザードによって生成される表形式フォームの組込みDMLには、更新の喪失を回避するためのチェックサム列が含まれています。コミット時ロックと呼ばれる方法を使用すると、表形式フォームのレンダリング時に各行のチェックサムが計算されます。このチェックサムは、表形式フォームの特別な非表示列に格納されます。更新のためにフォームを送信すると、データベースに格納されている現在のデータで追加のチェックサム・セットが計算されます。表形式フォームの初回レンダリング時に構築されたチェックサムと新しいチェックサムが比較され、不一致が見つかった場合、更新は拒否されます。これは、表形式フォームがレンダリングされてからデータが送信されるまでの間に、データベース内のデータが別のユーザーまたは別のプロセスによって変更されたためです。
また、ウィザードによって生成される表形式フォームでは、一部の列に対して検証が自動的に作成されます。検証は、基礎となる表でNOT NULL
に設定されている列、およびタイプがNUMBER
、DATE
またはTIMESTAMP
の列に対して作成されます。ユーザーの選択または定義済のユーザー・インタフェースのデフォルト値に基づいて、列が読取り専用に設定されている場合、検証は作成されません。
親トピック: レガシー表形式フォームの管理
ページの作成ウィザードを使用して、新しいページでレガシー表形式フォームを追加します。表形式フォームの基となる表の名前を指定すると、その表の列がデータベース・データ・ディクショナリから読み取られます。表形式の作成時には、汎用列テンプレートを使用し、列レポート・テンプレートは使用しないことをお薦めします。
注意:
レガシー表形式フォームは、レガシー・アプリケーション・コンポーネントです。レガシー・コンポーネントは引き続きOracleでサポートされますが、かわりに対話グリッドを作成することをお薦めします。
ページの作成ウィザードを使用してレガシー表形式フォームを作成するには、次のステップを実行します。
関連項目:
親トピック: レガシー表形式フォームの管理