ホーム > Oracle Formsの生成機能および代替方法 > Oracle Formsモジュール > ブロックとページ・リージョンのマッピング
前へ |
次へ |
Oracle FormをOracle Application Expressプロジェクトにロードすると、様々なブロックが分析され、生成方法が決められます。変換プロセスでは、ブロックのリレーション、表示されるレコード数および挿入または更新を許可するかどうかという情報が使用されます。Oracle FormsとOracle Application Expressには、生成される結果ページに直接影響する本質的な相違があります。
特定のマスター・ディテール関係を除き、各ブロックは、個別のOracle Application Expressページに生成されます。また、複数のブロックは、Oracle Application Express内の同じページの個別リージョンとして生成されないため、Oracle Formsに指定されたキャンバスは無視されます。次のセクションでは、Oracle Formsの様々なブロック・タイプおよびOracle Application Expressアプリケーションへのマップ方法を説明します。
Oracle Formsでは、データの問合せおよび戻されるレコードの更新の両方に単一のレコード・ブロックが使用されます。Oracle Application Expressでは、標準的な更新可能リージョンを問合せリージョンとしても使用することはできません。Oracle Formsのブロックが、挿入可能、更新可能として定義され、主キーを含む場合、生成マッピングでは、フォームを使用した対話モード・レポートが定義されます。対話モード・レポートでは、レコードを問い合わせることができ、生成された「編集」リンクによって、個々の更新レコードまたは削除レコードへナビゲートできます。「レコードの作成」ボタンによってレコードを挿入することができます。
満たされていない条件があるときは、単一レコード・ブロックの対話モード・レポートのみが生成されます。そのため、次のいずれかの条件があると、対話モード・レポートのみが生成され、対応するフォームは生成されません。
表示されるレコード数が複数である
「挿入可能」
にfalseが設定されている
「更新可能」
にfalseが設定されている
基礎となる表に主キーが定義されていない
ブロックがビューに基づいている
対話モード・レポートでは、そのブロックのプロジェクト内に定義された、元の問合せ、強化された問合せ、カスタム問合せが使用されます。ただし、フォームは、基礎となる表のみが基になります。ラジオ・グループ、チェック・ボックス、日付ピッカー、エディタおよび値リストなどのアイテム属性は、可能な場合に生成されます。
Oracle Formsで定義された表形式フォームは、複数のレコード数が表示される場合、Oracle Application Expresssの表形式フォームとして生成されます。選択リストのようなアイテム属性の実装は、生成後に手動で実行する必要があります。Oracle Formsに指定されたデータベース以外のアイテムは、生成に含められている場合でも、Oracle Application Expressによって生成される表形式フォームには生成されません。データベース以外のアイテムを表形式フォームに実装するには、生成後に手動で実行する必要があります。詳細は、Oracle Application Expressアドバンスト・チュートリアルの「表形式フォームの作成方法」を参照してください。
現在、検証およびデータベース以外のアイテムの表形式フォームへの追加は、非宣言型であり、Oracle Application Express Advanced Workshopのコースで扱います。代替方法は、レポートおよびフォームを手動で作成し、生成後に表形式フォームを置き換えることです。この方法では、検証の追加やデータベースのソースがないアイテムの追加がはるかに容易になります。
Oracle Formsのマスター・ディテール・フォームは、ブロックのリレーションを使用して定義されます。Oracle Formsのマスター・ディテール・リレーションに対して生成されるものを決定するには、いくつかの追加条件を調べる必要があります。マスター・ブロックは、次のいずれかとして生成されます。
対話モード・レポートおよびマスター・ディテール・フォーム
対話モード・レポートおよびフォームのみ
対話モード・レポートのみ
ディテール・ブロックは、単一のレコード・ブロックまたは指定されたマッピングに基づく表形式フォームのいずれかとして、独立して生成されます。
対話モード・レポートおよびマスター・ディテール・フォームは、次の条件が満たされている場合にのみ生成されます。
マスター・ブロックおよびディテール・ブロックの両方は表に基づいている。ただし同じ表ではない。また、両方に主キーがある。
ディテール・ブロックは1つのみ存在する。
マスター・ブロックとディテール・ブロックとの間に有効な外部キー・リレーションシップがある。
ブロックのリレーションがOracle Formsファイルで適切に定義されている。
マスター・ディテール・フォームが生成されると、Oracle Application Expressにディテール・ページも作成されます。Oracle Application Expressアプリケーションを作成する前に、生成されるディテール・ページを確認するときに手動で削除したり、生成後に手動で削除することができます。
また、マスター・ブロックおよび単一のディテール・ブロックの両方が同じ表を基にしていて、その表に主キーがあるときは、ブロックごとに2つの対話モード・レポートおよびフォームが生成されます。生成された結果フォームの一方を手動で変更して機能を単一のフォームに統合した後、もう1つの対話モード・レポートおよびフォームを削除することをお薦めします。ただし、表に主キーがないか、またはビューに基づいている場合は、レポートのみが生成されます。
Oracle Application Expressでは、1つのページに複数の表形式フォームを含めることはできません。そのため、1つのマスター・ブロックと複数のディテール・ブロックを持つファイルがロードされると、そのリレーションは無視されます。マスター・ブロックと各ディテール・ブロックは、各ブロック・プロパティに基づく表形式フォームまたは単一レコード・ブロックのいずれかとして独立して処理されます。
有効な外部キー・リレーションシップがなく、表に主キーがある場合、そのマスター・ブロックは対話モード・レポートおよびフォームとして生成されます。それ以外の場合は、対話モード・レポートとして生成されます。