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

戻る
戻る
 
次へ
次へ
 

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

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

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

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

内容は次のとおりです。

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


参照:

「PDF Printing in Application Express 3.0」および『Oracle 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 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 Application Express管理ガイド』の「「作業領域の概要」レポートの表示」を参照してください。

  2. 追加の記憶領域をリクエストします。 『Oracle 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に示すとおり、Md 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. グループ化の指定が求められたら、マスターとして使用する列を選択します。

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