ヘッダーをスキップ
Oracle® Application Expressアドバンスト・チュートリアル
リリース3.2
B53796-03
  目次へ移動
目次

前
 
次
 

13 マスター・ディテールPDFレポートの作成方法

Oracle Application Expressでは、レポート・リージョンをPDFにエクスポートしてレポートを印刷する機能がサポートされています。宣言を使用して定義することで、レポートの印刷によって、ページ・ヘッダーが含まれ、特定のページ・サイズに正確に一致するレポートを参照および印刷できます。ユーザーがレポートを印刷すると、レポート・データは外部的に定義されたレポート・サーバーを使用してPDF形式に変換されます。

レポート・リージョンの印刷に加えて、アプリケーションにリンクされているレポート問合せおよびレポート・レイアウトを使用して出力を定義することもできます。

このチュートリアルでは、マスター・ディテール・フォームの作成方法、レポート問合せとRTFテンプレートの定義方法および新しいレポートを公開するためのボタンの作成方法を説明します。

この項には、次の項目が含まれます。

このトピックに関するその他の例は、次に示すOracle by Examples (OBE)を参照してください。


関連項目:

「PDF Printing in Application Express 3.0」および『Oracle Database Application Expressユーザーズ・ガイド』のレポート出力の構成に関する説明

Oracle BI Publisherのライセンス要件

拡張PDF印刷には、Oracle Application Expressリリース3.0以上およびOracle BI Publisherの有効なライセンスが必要です。現在、Oracle Application ExpressインスタンスがBI Publisherを使用するように構成されていない場合は、「PDF Printing in Application Express 3.0」で、PDF印刷のインストールおよび構成の詳細を学習できます。

アプリケーションのホスティングされたバージョンの表示

Oracle BI Publisherの有効なライセンスを持たない場合、あるいはOracle BI Publisherをインストールまたは構成していない場合は、このチュートリアルの演習に従って、完成したアプリケーションのバージョンをapex.oracle.comで参照できます。

アプリケーションのホスティングされたバージョンを表示するには、次のステップを実行します。

  1. Webブラウザで次のURLに移動します。

    http://apex.oracle.com/pls/otn/f?p=15610
    

    ホスティングされたアプリケーションが表示されます。

  2. 顧客の横にある「編集」アイコンをクリックします。

  3. 「Order Details」ページで、「Print PDF of Order」をクリックします。

  4. PDFを参照できるようにハード・ドライブに保存します。

必須オブジェクトのロード

このチュートリアルを完了するには、OTN (Oracle Technology Network)からパッケージ・アプリケーションHow To Create a Master-Detail PDF Reportをダウンロードしてインストールする必要があります。このパッケージ・アプリケーションをインポートおよびインストールすると、このチュートリアルの完了に必要なオブジェクトが作成されます。また、構築するアプリケーションの最終バージョンが含まれています。これを使用すると、コードが参照できます。

この項の内容は次のとおりです。

パッケージ・アプリケーションのダウンロード

OTNからパッケージ・アプリケーションをダウンロードするには、次のステップを実行します。

  1. ご使用のコンピュータにmd_pdf_howto.zipファイルをダウンロードします。Webブラウザで次のURLに移動します。

    http://www.oracle.com/technology/products/database/application_express/packaged_apps/md_pdf_howto.zip
    
  2. 解答してmd_pdf_howto.zipファイルを抽出します。

    • Microsoft Windowsの場合、md_pdf_howto.zipファイルをダブルクリックします。

    • UNIXまたはLinuxの場合、次のコマンドを入力します。

      $ unzip md_pdf_howto.zip
      
  3. md_pdf_howto_readme.txtファイルを確認します。

パッケージ・アプリケーションのインポートおよびインストール

アプリケーションHow To Create a Master-Detail PDF Reportをインポートおよびインストールするには、次のステップを実行します。

  1. Oracle Application Expressにログインします。『Oracle Database Application Expressユーザーズ・ガイド』の「Oracle Application Expressへのログイン」を参照してください。

  2. 「ワークスペース」ホームページで、「アプリケーション・ビルダー」をクリックします。

    「アプリケーション・ビルダー」ホームページが表示されます。

  3. インポート」ボタンをクリックします。

  4. 「ファイルの指定」で、次の各項目を指定します。

    1. 「インポート」ファイルで、「参照」をクリックし、md_pdf_howto_installer.sqlファイルに移動します。

    2. 「ファイル・タイプ」で、「アプリケーション、ページまたはコンポーネントのエクスポート」を選択します。

    3. 「ファイルのキャラクタ・セット」が正しいことを確認します。

    4. 次へ」をクリックします。

  5. 「ファイルのインポートの確認」で、「次へ」をクリックしてインポートしたファイルをインストールします。

    「アプリケーションのインストール」ウィザードが表示されます。

  6. 「アプリケーションのインストール」ウィザードで、次の各項目を指定します。

    1. 「解析対象スキーマ」で、適切なスキーマを選択します。

    2. 「ビルド・ステータス」で、「アプリケーションの実行および構築」を選択します。

    3. 「次のアプリケーションとしてインストール」で、「新しいアプリケーションIDを自動割当て」を選択します。

    4. インストール」をクリックします。

  7. 「サポートするオブジェクト」で、「はい」を選択して「次へ」をクリックします。

  8. インストール」をクリックして、選択内容を確定します。

  9. ページ上部の「ホーム」ブレッドクラム・リンクをクリックします。

    「アプリケーション・ビルダー」ホームページが表示されます。

ワークスペースの空き領域の確認

How To Create a Master-Detail PDF Reportアプリケーションのインストールで問題が発生した場合は、ワークスペースの空き領域を確認します。追加の記憶領域をリクエストすることが必要な場合があります。

ワークスペース管理者は、次のことを実行できます。

  1. 記憶領域を追加する必要があるかどうかを判断します。『Oracle Database Application Expressユーザーズ・ガイド』の「ワークスペースの概要レポートの表示」を参照してください。

  2. 追加の記憶領域をリクエストします。『Oracle Database Application Expressユーザーズ・ガイド』の「追加の記憶域のリクエスト」を参照してください。

パッケージ・アプリケーションの削除

How To Create a Master-Detail PDF Reportアプリケーションを削除し、サポートするオブジェクトを完全に削除するように選択すると、関連するオブジェクトおよびサンプル・データすべてが削除されます。

How To Create a Master-Detail PDF Reportアプリケーションを削除するには、次のステップを実行します。

  1. Oracle Application Expressにログインします。

  2. 「ワークスペース」ホームページで、「アプリケーション・ビルダー」をクリックします。

    「アプリケーション・ビルダー」ホームページが表示されます。

  3. How To Create a Master-Detail PDF Reportアプリケーションを選択します。

    「アプリケーション」ホームページが表示されます。

  4. 「タスク」リストで、「このアプリケーションの削除」をクリックします。

    「削除」ページが表示されます。

  5. 関連するオブジェクトおよびサンプル・データをすべて削除するには、「アプリケーション定義の削除」および「サポートされているオブジェクトの削除」を選択します。

  6. 削除」をクリックします。

マスター・ディテール・フォームの作成

マスター・ディテール・フォームを作成するには、次のステップを実行します。

  1. 「ワークスペース」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。

  2. How To Create a Master-Detail PDF Reportアプリケーションを選択します。

  3. ページの作成」をクリックします。

  4. フォーム」を選択して「次へ」をクリックします。

  5. マスター・ディテール・フォーム」を選択して「次へ」をクリックします。

    「マスター・ディテール」ウィザードが表示されます。

  6. 「マスター表」で、次の各項目を選択します。

    1. 「表/ビューの所有者」で、適切なスキーマを選択します。

    2. 「表/ビューの名前」で、MD_PDF_ORDERSを選択します。

      このオブジェクトの列は、「選択可能な列」の下に表示されます。

    3. [Shift]キーを押してすべての列を選択した後、「追加」ボタンをクリックして「表示列」へ移動させます。

    4. 次へ」をクリックします。

  7. 「ディテール表」で、次の各項目を指定します。

    1. 「関連する表のみの表示」で、デフォルトの「はい」を受け入れます。

    2. 「表/ビューの所有者」で、適切なスキーマを選択します。

    3. 「表/ビューの名前」で、MD_PDF_ORDER_ITEMSを選択します。

      このオブジェクトの列は、「選択可能な列」の下に表示されます。

    4. [Shift]キーを押してすべての列を選択した後、「追加」ボタンをクリックして「表示列」へ移動させます。

    5. 次へ」をクリックします。

  8. 「主キーのソース」で、次のステップを実行します。

    1. 「主キー列」のORDER_IDで、デフォルトの「既存のトリガー」を受け入れて、「次へ」をクリックします。

    2. 「主キー列」のORDER_ITEM_IDで、デフォルトの「既存のトリガー」を受け入れて、「次へ」をクリックします。

  9. 残りのデフォルトを受け入れるには、「終了」をクリックします。

  10. 作成」をクリックします。

    「成功」ページが表示されます。

レポートの表示

新しいページを表示するには、次のステップを実行します。

  1. ページの実行」アイコンをクリックします。

    図13-1に示すとおり、PDF Ordersレポートが表示されます。

    図13-1 Md Pdf Ordersレポート

    図13-1の説明が続きます。
    「図13-1 Md Pdf Ordersレポート」の説明

    ウィザードによってアプリケーションに、マスター表のレポートおよび表を参照するマスター・ディテール・フォームの2つのページが追加されたことを確認します。

  2. 注文を編集してマスター・ディテール・フォームを表示するには、「編集」アイコンをクリックします。

    図13-2に示すとおり、「マスター・ディテール」ページが表示されます。

    図13-2 「マスター・ディテール」ページ

    図13-2の説明が続きます。
    「図13-2 「マスター・ディテール」ページ」の説明

レポート問合せの作成

作成したフォームには、5つの注文の注文アイテムが表示されます。標準のPDF印刷を使用すると、表形式フォームでリージョン印刷ができます。これによって、出力には、選択したマスターのみの注文アイテムのレコードのみが表示されます。「Order Items」とともにすべての注文情報を組み込むレポートを作成するには、レポート問合せを作成します。注文情報は、各注文アイテムのセッション・ステートから取得されます。

レポート問合せを作成するには、次のステップを実行します。

  1. 「レポート問合せ」ページに移動します。

    1. 「アプリケーション」ホームページに戻るには、「開発者」ツールバーで「アプリケーション」リンクをクリックします。

    2. 共有コンポーネント」アイコンをクリックします。

    3. レポートの下の「レポート問合せ」をクリックします。

      「レポート問合せ」ページが表示されます。

  2. 作成」をクリックします。

  3. 「レポート問合せの定義」で、次の各項目を入力します。

    1. 「レポート問合せ名」に、order_detailsと入力します。

    2. 「セッション・ステート」で、「アプリケーションとセッションの情報を含める」を選択します。

      「アイテムの選択」フィールドが表示されます。

    3. 「アイテムの選択」で、「P3_CUSTOMER_NAME」を選択して「追加」をクリックします。

      この手順を次のアイテムに対して繰り返します。

      P3_ORDER_DATE

      P3_ORDER_ID

      P3_ORDER_MODE

      P3_ORDER_STATUS

      P3_ORDER_TOTAL

      P3_SALES_REP

    4. 残りのデフォルトを受け入れて「次へ」をクリックします。

  4. 「ソース問合せ」で、次の各項目を入力します。

    1. 「SQL問合せ」に、次のコードを入力します。

      SELECT LINE_ITEM_ID,
             QUANTITY,
             ORDER_ITEM_ID,
             PRODUCT_NAME,
             to_char(UNIT_PRICE,'$9,999.99') unit_price
        FROM MD_PDF_ORDER_ITEMS
       WHERE ORDER_ID = :P3_ORDER_ID
      
    2. 次へ」をクリックします。

  5. 「レポート・レイアウトのデータ・ソース」で、「XMLデータ」を選択して「ダウンロード」ボタンをクリックします。

    このステップでは、レポート問合せの名前を持つXMLファイルorder_details.xmlがダウンロードされます。

  6. 結果ファイルをハード・ドライブに保存します。

    このXMLファイルを使用してRTFテンプレートを作成した後、アップロードします。ただし、はじめに汎用レポート・レイアウトを使用して、レポート問合せの作成プロセスを完了する必要があります。その後、レポート問合せを作成およびアップロードし、これを編集して新しいレポート・レイアウトを参照します。

  7. 次へ」をクリックします。

  8. 「レポート・レイアウト・ファイル」で、保存済のorder_details.xmlファイルを参照して選択します。

  9. 次へ」をクリックします。

    表示されるURLを確認します。このURLは、アプリケーションからこのレポートをコールする際に使用します。

  10. 終了」をクリックします。

    次に、このXMLファイルを使用してRTFテンプレートを作成する必要があります。

RTFテンプレートの作成

レポート問合せから作成されたXMLを編集するには、Oracle BI Publisher Desktopが必要です。正常にロードされると、Oracle BI Publisher Desktopによって、Microsoft Wordに新しいメニュー・オプションが追加されます。

この項の内容は次のとおりです。

Oracle BI Publisher Desktopのダウンロード

デスクトップをロードしていない場合は、ここでダウンロードできます。

http://www.oracle.com/technology/software/htdocs/devlic.html?url=/technology/software/products/ias/htdocs/101320bi.html

XML Detailsのロード

レポート問合せによって生成されたXMLをロードするには、次のステップを実行します。

  1. Microsoft Wordを起動します。

  2. 「Oracle BI Publisher」メニューから、「データ」、「サンプルXMLデータのロード」を順に選択します。

  3. レポート問合せの作成時に生成したファイルorder_details.xmlを選択します。

    次のメッセージが表示されます。

    Data loaded successfully
    
  4. OK」をクリックします。

    ページに何も表示されないことを確認します。

フィールドの挿入

注文列を挿入するには、次のステップを実行します。

  1. 「Oracle BI Publisher」メニューから、「挿入」、「フィールド」を順に選択します。

  2. P3 Customer Nameを選択して、「挿入」をクリックします。

  3. 各注文列の挿入を続けます。

  4. 「フィールド」ダイアログ・ボックスを終了するには、「閉じる」をクリックします。

    各注文アイテムは、ページ上に1つの長い文字列として表示されます。

  5. ページを編集して、アイテムが1行に1つずつ表示され、先頭に説明ら別が付くようにします。次に例を示します。

    Customer: P3_CUSTOMER_NAME
    Order Date: P3_ORDER_DATE
    Order ID: P3_ORDER_ID
    Order Mode: P3_ORDER_MODE
    Order Status: P3_ORDER_STATUS
    Order Total: P3_ORDER_TOTAL
    Sales Rep: P3_SALES_REP
    

ライン・アイテムの挿入

ライン・アイテムを挿入するには、次のステップを実行します。

  1. 注文の詳細の下に、いくつかの空白行を挿入します。

  2. 「Oracle BI Publisher」メニューから、「挿入」、「表ウィザード」を順に選択します。

  3. デフォルトの「」を受け入れ、「次へ」をクリックします。

  4. 「グループ化フィールド」で「DOCUMENT/REGION/ROWSET/ROW」を選択し、「次へ」をクリックします。

  5. 各フィールドを選択して、右側の列に移動します。「次へ」をクリックします。

    レポートによって1つの注文のみが選択されるため、選択項目のグループ化を行う必要はありません。

  6. 次へ」をクリックします。

  7. 「ソート基準」で、「ライン・アイテムId」を選択して「次へ」をクリックします。

  8. 「ラベル」で、次の各項目を編集します。

    1. 「ライン・アイテムId」をLine Itemに変更します。

    2. 「オーダー・アイテムId」をOrder Itemに変更します。

  9. 終了」をクリックします。

    図13-3に示すような、基本的なフレームワークが作成されます。

    図13-3 レポート・レイアウト・テンプレート

    図13-3の説明が続きます。
    「図13-3 レポート・レイアウト・テンプレート」の説明

  10. ヘッダーおよびフッターを定義するには、「ビュー」メニューで「ヘッダーおよびフッター」を選択します。

    たとえば、ヘッダーにはレポート名(My Order Reportなど)を、フッターにはページ番号やレポートを実行した日時を含めることができます。また、フォント・ファミリやフォント・サイズをカスタマイズすることもできます。

  11. 変更を保存します。

    1. 「ファイル」メニューで、「別名保存」を選択します。

    2. 「名前を付けて保存」で「リッチ テキスト形式(*.rtf)」を選択します。

    3. 「ファイル名」にorder_details.rtfと入力します。

    4. Microsoft Wordを終了します。

RTFへの変数の挿入

RTFのヘッダーおよびフッターには変数を挿入できます。たとえば、How To Create a Master-Detail PDF Reportアプリケーションのサンプル・ページに使用されているRTFファイルには、レポートが実行された日時およびレポートを実行したユーザーが含まれます。

このRTFをダウンロードして表示するには、次のステップを実行します。

  1. 「レポート・レイアウト」ページに移動します。

    1. 共有コンポーネント」アイコンをクリックします。

    2. 「レポート」の下の「レポート・レイアウト」をクリックします。

      「レポート問合せ」ページが表示されます。

  2. order_details2をクリックします。

  3. ダウンロード」をクリックして、ハード・ドライブにorder_details2.rtfを保存します。

  4. Microsoft Wordでorder_details2.rtfを開き、フッターに含まれる変数を確認します。

レポート・レイアウトの作成

レポート・レイアウト・テンプレートが完成すると、アプリケーション・ビルダーにアップロードして、レポート問合せに関連付ける必要があります。

この項の内容は次のとおりです。

レポート・レイアウトの作成

レポート・レイアウトを作成するには、次のステップを実行します。

  1. 「共有コンポーネント」ページに移動します。

    1. 共有コンポーネント」ブレッドクラムをクリックします。

    2. 「レポート」の下の「レポート・レイアウト」をクリックします。

      「レポート・レイアウト」ページが表示されます。

  2. 作成」をクリックします。

  3. 「レイアウト・タイプ」に「名前付き列」を選択して「次へ」をクリックします。

  4. 「レイアウト・タイプ」で、次の各項目を指定します。

    1. 「レイアウト名」に、order detailsと入力します。

    2. 「レポート・レイアウト・ファイル」で、「参照」をクリックして、order_details.rtfを選択します。

  5. レイアウトの作成」をクリックします。

レポート・レイアウトとレポート問合せの関連付け

レポート・レイアウトとレポート問合せを関連付けるには、次のステップを実行します。

  1. 「共有コンポーネント」ページに移動します。「共有コンポーネント」ブレッドクラムをクリックします。

  2. レポートの下の「レポート問合せ」をクリックします。

  3. order_detailsをクリックして問合せを編集します。

  4. 「レポート問合せ」属性の「レポート・レイアウト」で、order detailsを選択します。

  5. 変更の適用」をクリックします。

アプリケーションへのPDFレポートのリンク

この演習では、ボタンを作成してPDFレポートをアプリケーションにリンクさせます。

この項の内容は次のとおりです。

ボタンの作成

ボタンを作成するには、次のステップを実行します。

  1. 「マスター・ディテール」ページの「ページ定義」に移動します。

    1. 「アプリケーション」ブレッドクラム・リンクをクリックします。

    2. マスター・ディテール」を選択します。

  2. 「ボタン」で、「作成」アイコンをクリックします。

    図13-4 「作成」アイコン

    図13-4の説明が続きます。
    「図13-4 「作成」アイコン」の説明

  3. 「ボタン・リージョン」で、Md Pdf Ordersを選択して「次へ」をクリックします。

    これによって、ボタンが上部の(マスター・)リージョンに配置されます。

  4. 「ボタン位置」で、デフォルトの「リージョン位置にボタンを作成」を受け入れて「次へ」をクリックします。

  5. 「ボタン属性」で、次のステップを実行します。

    1. 「ボタン名」に、PRINTと入力します。

    2. 「ラベル」に、Print PDF of Orderと入力します。

    3. 「ボタン・タイプ」で、デフォルトの「テンプレートによる作成」を受け入れます。

    4. 「アクション」で、「出力可能なレポート問合せのダウンロード」を選択します。

    5. 次へ」をクリックします。

  6. 「ボタン・テンプレート」で、デフォルトを受け入れて「次へ」をクリックします。

  7. 「表示プロパティ」で、次のステップを実行します。

    1. 「位置」で、「リージョン・テンプレートの位置#CREATE#」を選択します。

      これによって、ボタンは「変更の適用」ボタンの右側に配置されます。

    2. 残りのデフォルトを受け入れて「次へ」をクリックします。

  8. 「ブランチ」で、次のステップを実行します。

    1. 「レポート問合せ」で、order_detailsを選択します。

    2. 次へ」をクリックします。

  9. 「条件付き表示」で、次のステップを実行します。

    1. 「条件タイプ」で、「式1のアイテムの値がNOT NULL」を選択します。

    2. 「式1」に、P3_ORDER_IDと入力します。

      この条件を作成すると、新しい注文の作成時に印刷ボタンは表示されません。

  10. ボタンの作成」をクリックします。

ページの実行

ページを実行するには、次のステップを実行します。

  1. 図13-5に示すように、ページの右上にある「ページの実行」アイコンをクリックします。

    図13-5 「ページの実行」アイコン

    図13-5の説明が続きます。
    「図13-5 「ページの実行」アイコン」の説明

  2. レポートが表示されたら、「取消」をクリックして「Md Pdf Order」ページに戻ります。

  3. 編集」アイコンをクリックして、別の注文を選択します。

    図13-6のようなマスター・ディテール・ページが表示されます。新しい「Print PDF of Order」ボタンを確認します。

    図13-6 更新された「マスター・ディテール」ページ

    図13-6の説明が続きます。
    「図13-6 更新された「マスター・ディテール」ページ」の説明

  4. Oracle BI Publisherのライセンスを持たない場合、あるいはOracle BI Publisherをインストールまたは構成していない場合は、PDFとしてレポートを保存できません。

    このアプリケーションの完全に機能するバージョンを表示するには、次のようにします。

    • apex.oracle.comでホスティングされたバージョンを参照します。「アプリケーションのホスティングされたバージョンの表示」を参照してください。

    • デモンストレーション・アプリケーションに含まれるサンプル・ページを参照します。「アプリケーション」ホームページに戻って「Orders」ページを実行し、「編集」をクリックして注文を編集した後、「Print PDF Order」をクリックします。

すべての注文を含む1つのPDFの作成

このチュートリアルでは、1つの注文に固有のレポートを作成しました。同じレポートを、Order IDを渡さないで作成することもできます。これによって、すべての注文を含むPDFが作成されます。これを行うには、次のステップを実行します。

  1. 必要な列をすべて戻す1つのレポート問合せを作成します。セッション・ステート変数を含める必要はありません。

  2. このチュートリアルで行った方法と同じ方法で、結果のXMLをMicrosoft Wordにロードし、表ウィザードを使用します。

  3. グループ化の指定が求められたら、マスターとして使用する列を選択します。

    結果の表示には、詳細レコードを含む表の上にグループ化された列が含められます。その後、ラベルを追加して表示をカスタマイズできます。レポートを実行すると、新しいページに各マスター値が表示されます。