Oracle Application Expressでは、レポート・リージョンをPDFにエクスポートしてレポートを印刷する機能がサポートされています。宣言を使用して定義することで、レポートの印刷によって、ページ・ヘッダーが含まれ、特定のページ・サイズに正確に一致するレポートを参照および印刷できます。ユーザーがレポートを印刷すると、レポート・データは外部的に定義されたレポート・サーバーを使用してPDF形式に変換されます。
レポート・リージョンの印刷に加えて、アプリケーションにリンクされているレポート問合せおよびレポート・レイアウトを使用して出力を定義することもできます。
このチュートリアルでは、マスター・ディテール・フォームの作成方法、レポート問合せとRTFテンプレートの定義方法および新しいレポートを公開するためのボタンの作成方法を説明します。
この項には、次の項目が含まれます。
このトピックに関するその他の例は、次に示すOracle by Examples (OBE)を参照してください。
Oracle Application Express 3.1でのPDFレポートの作成
http://www.oracle.com/technology/obe/apex/apex31nf/apex31rpt.htm
Oracle Application Express 3.1での拡張印刷の使用
http://www.oracle.com/technology/obe/11gr1_db/appdev/apexpdf/apexpdf.htm
複数の問合せでのPDFレポートの作成
http://www.oracle.com/technology/obe/hol08/apexprnt/apexprnt_otn.htm
レポートへの動的イメージの挿入
http://www.oracle.com/technology/obe/hol08/apexprnt/apexprnt2_otn.htm
データベースへのレポートの格納およびアクセス
http://www.oracle.com/technology/obe/hol08/apexprnt/apexprnt3_otn.htm
動的レイアウト選択を使用したレポートの作成
http://www.oracle.com/technology/obe/hol08/apexprnt/apexprnt4_otn.htm
関連項目: 「PDF Printing in Application Express 3.0」および『Oracle Database Application Expressユーザーズ・ガイド』のレポート出力の構成に関する説明 |
拡張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
で参照できます。
アプリケーションのホスティングされたバージョンを表示するには、次のステップを実行します。
Webブラウザで次のURLに移動します。
http://apex.oracle.com/pls/otn/f?p=15610
ホスティングされたアプリケーションが表示されます。
顧客の横にある「編集」アイコンをクリックします。
「Order Details」ページで、「Print PDF of Order」をクリックします。
PDFを参照できるようにハード・ドライブに保存します。
このチュートリアルを完了するには、OTN (Oracle Technology Network)からパッケージ・アプリケーションHow To Create a Master-Detail PDF Reportをダウンロードしてインストールする必要があります。このパッケージ・アプリケーションをインポートおよびインストールすると、このチュートリアルの完了に必要なオブジェクトが作成されます。また、構築するアプリケーションの最終バージョンが含まれています。これを使用すると、コードが参照できます。
この項の内容は次のとおりです。
OTNからパッケージ・アプリケーションをダウンロードするには、次のステップを実行します。
ご使用のコンピュータにmd_pdf_howto.zip
ファイルをダウンロードします。Webブラウザで次のURLに移動します。
http://www.oracle.com/technology/products/database/application_express/packaged_apps/md_pdf_howto.zip
解答してmd_pdf_howto.zip
ファイルを抽出します。
Microsoft Windowsの場合、md_pdf_howto.zip
ファイルをダブルクリックします。
UNIXまたはLinuxの場合、次のコマンドを入力します。
$ unzip md_pdf_howto.zip
md_pdf_howto_readme.txt
ファイルを確認します。
アプリケーションHow To Create a Master-Detail PDF Reportをインポートおよびインストールするには、次のステップを実行します。
Oracle Application Expressにログインします。『Oracle Database Application Expressユーザーズ・ガイド』の「Oracle Application Expressへのログイン」を参照してください。
「ワークスペース」ホームページで、「アプリケーション・ビルダー」をクリックします。
「アプリケーション・ビルダー」ホームページが表示されます。
「インポート」ボタンをクリックします。
「ファイルの指定」で、次の各項目を指定します。
「インポート」ファイルで、「参照」をクリックし、md_pdf_howto_installer.sql
ファイルに移動します。
「ファイル・タイプ」で、「アプリケーション、ページまたはコンポーネントのエクスポート」を選択します。
「ファイルのキャラクタ・セット」が正しいことを確認します。
「次へ」をクリックします。
「ファイルのインポートの確認」で、「次へ」をクリックしてインポートしたファイルをインストールします。
「アプリケーションのインストール」ウィザードが表示されます。
「アプリケーションのインストール」ウィザードで、次の各項目を指定します。
「解析対象スキーマ」で、適切なスキーマを選択します。
「ビルド・ステータス」で、「アプリケーションの実行および構築」を選択します。
「次のアプリケーションとしてインストール」で、「新しいアプリケーションIDを自動割当て」を選択します。
「インストール」をクリックします。
「サポートするオブジェクト」で、「はい」を選択して「次へ」をクリックします。
「インストール」をクリックして、選択内容を確定します。
ページ上部の「ホーム」ブレッドクラム・リンクをクリックします。
「アプリケーション・ビルダー」ホームページが表示されます。
How To Create a Master-Detail PDF Reportアプリケーションのインストールで問題が発生した場合は、ワークスペースの空き領域を確認します。追加の記憶領域をリクエストすることが必要な場合があります。
ワークスペース管理者は、次のことを実行できます。
記憶領域を追加する必要があるかどうかを判断します。『Oracle Database Application Expressユーザーズ・ガイド』の「ワークスペースの概要レポートの表示」を参照してください。
追加の記憶領域をリクエストします。『Oracle Database Application Expressユーザーズ・ガイド』の「追加の記憶域のリクエスト」を参照してください。
How To Create a Master-Detail PDF Reportアプリケーションを削除し、サポートするオブジェクトを完全に削除するように選択すると、関連するオブジェクトおよびサンプル・データすべてが削除されます。
How To Create a Master-Detail PDF Reportアプリケーションを削除するには、次のステップを実行します。
Oracle Application Expressにログインします。
「ワークスペース」ホームページで、「アプリケーション・ビルダー」をクリックします。
「アプリケーション・ビルダー」ホームページが表示されます。
How To Create a Master-Detail PDF Reportアプリケーションを選択します。
「アプリケーション」ホームページが表示されます。
「タスク」リストで、「このアプリケーションの削除」をクリックします。
「削除」ページが表示されます。
関連するオブジェクトおよびサンプル・データをすべて削除するには、「アプリケーション定義の削除」および「サポートされているオブジェクトの削除」を選択します。
「削除」をクリックします。
マスター・ディテール・フォームを作成するには、次のステップを実行します。
「ワークスペース」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
How To Create a Master-Detail PDF Reportアプリケーションを選択します。
「ページの作成」をクリックします。
「フォーム」を選択して「次へ」をクリックします。
「マスター・ディテール・フォーム」を選択して「次へ」をクリックします。
「マスター・ディテール」ウィザードが表示されます。
「マスター表」で、次の各項目を選択します。
「表/ビューの所有者」で、適切なスキーマを選択します。
「表/ビューの名前」で、MD_PDF_ORDERS
を選択します。
このオブジェクトの列は、「選択可能な列」の下に表示されます。
[Shift]キーを押してすべての列を選択した後、「追加」ボタンをクリックして「表示列」へ移動させます。
「次へ」をクリックします。
「ディテール表」で、次の各項目を指定します。
「関連する表のみの表示」で、デフォルトの「はい」を受け入れます。
「表/ビューの所有者」で、適切なスキーマを選択します。
「表/ビューの名前」で、MD_PDF_ORDER_ITEMS
を選択します。
このオブジェクトの列は、「選択可能な列」の下に表示されます。
[Shift]キーを押してすべての列を選択した後、「追加」ボタンをクリックして「表示列」へ移動させます。
「次へ」をクリックします。
「主キーのソース」で、次のステップを実行します。
「主キー列」のORDER_ID
で、デフォルトの「既存のトリガー」を受け入れて、「次へ」をクリックします。
「主キー列」のORDER_ITEM_ID
で、デフォルトの「既存のトリガー」を受け入れて、「次へ」をクリックします。
残りのデフォルトを受け入れるには、「終了」をクリックします。
「作成」をクリックします。
「成功」ページが表示されます。
新しいページを表示するには、次のステップを実行します。
作成したフォームには、5つの注文の注文アイテムが表示されます。標準のPDF印刷を使用すると、表形式フォームでリージョン印刷ができます。これによって、出力には、選択したマスターのみの注文アイテムのレコードのみが表示されます。「Order Items」とともにすべての注文情報を組み込むレポートを作成するには、レポート問合せを作成します。注文情報は、各注文アイテムのセッション・ステートから取得されます。
レポート問合せを作成するには、次のステップを実行します。
「レポート問合せ」ページに移動します。
「アプリケーション」ホームページに戻るには、「開発者」ツールバーで「アプリケーション」リンクをクリックします。
「共有コンポーネント」アイコンをクリックします。
レポートの下の「レポート問合せ」をクリックします。
「レポート問合せ」ページが表示されます。
「作成」をクリックします。
「レポート問合せの定義」で、次の各項目を入力します。
「レポート問合せ名」に、order_details
と入力します。
「セッション・ステート」で、「アプリケーションとセッションの情報を含める」を選択します。
「アイテムの選択」フィールドが表示されます。
「アイテムの選択」で、「P3_CUSTOMER_NAME」を選択して「追加」をクリックします。
この手順を次のアイテムに対して繰り返します。
P3_ORDER_DATE
P3_ORDER_ID
P3_ORDER_MODE
P3_ORDER_STATUS
P3_ORDER_TOTAL
P3_SALES_REP
残りのデフォルトを受け入れて「次へ」をクリックします。
「ソース問合せ」で、次の各項目を入力します。
「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
「次へ」をクリックします。
「レポート・レイアウトのデータ・ソース」で、「XMLデータ」を選択して「ダウンロード」ボタンをクリックします。
このステップでは、レポート問合せの名前を持つXMLファイルorder_details.xml
がダウンロードされます。
結果ファイルをハード・ドライブに保存します。
このXMLファイルを使用してRTFテンプレートを作成した後、アップロードします。ただし、はじめに汎用レポート・レイアウトを使用して、レポート問合せの作成プロセスを完了する必要があります。その後、レポート問合せを作成およびアップロードし、これを編集して新しいレポート・レイアウトを参照します。
「次へ」をクリックします。
「レポート・レイアウト・ファイル」で、保存済のorder_details.xml
ファイルを参照して選択します。
「次へ」をクリックします。
表示されるURLを確認します。このURLは、アプリケーションからこのレポートをコールする際に使用します。
「終了」をクリックします。
次に、このXMLファイルを使用してRTFテンプレートを作成する必要があります。
レポート問合せから作成されたXMLを編集するには、Oracle BI Publisher Desktopが必要です。正常にロードされると、Oracle BI Publisher Desktopによって、Microsoft Wordに新しいメニュー・オプションが追加されます。
この項の内容は次のとおりです。
デスクトップをロードしていない場合は、ここでダウンロードできます。
http://www.oracle.com/technology/software/htdocs/devlic.html?url=/technology/software/products/ias/htdocs/101320bi.html
レポート問合せによって生成されたXMLをロードするには、次のステップを実行します。
Microsoft Wordを起動します。
「Oracle BI Publisher」メニューから、「データ」、「サンプルXMLデータのロード」を順に選択します。
レポート問合せの作成時に生成したファイルorder_details.xml
を選択します。
次のメッセージが表示されます。
Data loaded successfully
「OK」をクリックします。
ページに何も表示されないことを確認します。
注文列を挿入するには、次のステップを実行します。
「Oracle BI Publisher」メニューから、「挿入」、「フィールド」を順に選択します。
P3 Customer Name
を選択して、「挿入」をクリックします。
各注文列の挿入を続けます。
「フィールド」ダイアログ・ボックスを終了するには、「閉じる」をクリックします。
各注文アイテムは、ページ上に1つの長い文字列として表示されます。
ページを編集して、アイテムが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
ライン・アイテムを挿入するには、次のステップを実行します。
注文の詳細の下に、いくつかの空白行を挿入します。
「Oracle BI Publisher」メニューから、「挿入」、「表ウィザード」を順に選択します。
デフォルトの「表」を受け入れ、「次へ」をクリックします。
「グループ化フィールド」で「DOCUMENT/REGION/ROWSET/ROW」を選択し、「次へ」をクリックします。
各フィールドを選択して、右側の列に移動します。「次へ」をクリックします。
レポートによって1つの注文のみが選択されるため、選択項目のグループ化を行う必要はありません。
「次へ」をクリックします。
「ソート基準」で、「ライン・アイテムId」を選択して「次へ」をクリックします。
「ラベル」で、次の各項目を編集します。
「ライン・アイテムId」をLine Item
に変更します。
「オーダー・アイテムId」をOrder Item
に変更します。
「終了」をクリックします。
図13-3に示すような、基本的なフレームワークが作成されます。
ヘッダーおよびフッターを定義するには、「ビュー」メニューで「ヘッダーおよびフッター」を選択します。
たとえば、ヘッダーにはレポート名(My Order Report
など)を、フッターにはページ番号やレポートを実行した日時を含めることができます。また、フォント・ファミリやフォント・サイズをカスタマイズすることもできます。
変更を保存します。
「ファイル」メニューで、「別名保存」を選択します。
「名前を付けて保存」で「リッチ テキスト形式(*.rtf)」を選択します。
「ファイル名」にorder_details.rtf
と入力します。
Microsoft Wordを終了します。
RTFのヘッダーおよびフッターには変数を挿入できます。たとえば、How To Create a Master-Detail PDF Reportアプリケーションのサンプル・ページに使用されているRTFファイルには、レポートが実行された日時およびレポートを実行したユーザーが含まれます。
このRTFをダウンロードして表示するには、次のステップを実行します。
「レポート・レイアウト」ページに移動します。
「共有コンポーネント」アイコンをクリックします。
「レポート」の下の「レポート・レイアウト」をクリックします。
「レポート問合せ」ページが表示されます。
order_details2をクリックします。
「ダウンロード」をクリックして、ハード・ドライブにorder_details2.rtf
を保存します。
Microsoft Wordでorder_details2.rtf
を開き、フッターに含まれる変数を確認します。
レポート・レイアウト・テンプレートが完成すると、アプリケーション・ビルダーにアップロードして、レポート問合せに関連付ける必要があります。
この項の内容は次のとおりです。
レポート・レイアウトを作成するには、次のステップを実行します。
「共有コンポーネント」ページに移動します。
「共有コンポーネント」ブレッドクラムをクリックします。
「レポート」の下の「レポート・レイアウト」をクリックします。
「レポート・レイアウト」ページが表示されます。
「作成」をクリックします。
「レイアウト・タイプ」に「名前付き列」を選択して「次へ」をクリックします。
「レイアウト・タイプ」で、次の各項目を指定します。
「レイアウト名」に、order details
と入力します。
「レポート・レイアウト・ファイル」で、「参照」をクリックして、order_details.rtfを選択します。
「レイアウトの作成」をクリックします。
レポート・レイアウトとレポート問合せを関連付けるには、次のステップを実行します。
「共有コンポーネント」ページに移動します。「共有コンポーネント」ブレッドクラムをクリックします。
レポートの下の「レポート問合せ」をクリックします。
order_detailsをクリックして問合せを編集します。
「レポート問合せ」属性の「レポート・レイアウト」で、order detailsを選択します。
「変更の適用」をクリックします。
この演習では、ボタンを作成してPDFレポートをアプリケーションにリンクさせます。
この項の内容は次のとおりです。
ボタンを作成するには、次のステップを実行します。
「マスター・ディテール」ページの「ページ定義」に移動します。
「アプリケーション」ブレッドクラム・リンクをクリックします。
「マスター・ディテール」を選択します。
「ボタン」で、「作成」アイコンをクリックします。
「ボタン・リージョン」で、Md Pdf Ordersを選択して「次へ」をクリックします。
これによって、ボタンが上部の(マスター・)リージョンに配置されます。
「ボタン位置」で、デフォルトの「リージョン位置にボタンを作成」を受け入れて「次へ」をクリックします。
「ボタン属性」で、次のステップを実行します。
「ボタン名」に、PRINT
と入力します。
「ラベル」に、Print PDF of Order
と入力します。
「ボタン・タイプ」で、デフォルトの「テンプレートによる作成」を受け入れます。
「アクション」で、「出力可能なレポート問合せのダウンロード」を選択します。
「次へ」をクリックします。
「ボタン・テンプレート」で、デフォルトを受け入れて「次へ」をクリックします。
「表示プロパティ」で、次のステップを実行します。
「位置」で、「リージョン・テンプレートの位置#CREATE#」を選択します。
これによって、ボタンは「変更の適用」ボタンの右側に配置されます。
残りのデフォルトを受け入れて「次へ」をクリックします。
「ブランチ」で、次のステップを実行します。
「レポート問合せ」で、order_details
を選択します。
「次へ」をクリックします。
「条件付き表示」で、次のステップを実行します。
「条件タイプ」で、「式1のアイテムの値がNOT NULL」を選択します。
「式1」に、P3_ORDER_ID
と入力します。
この条件を作成すると、新しい注文の作成時に印刷ボタンは表示されません。
「ボタンの作成」をクリックします。
ページを実行するには、次のステップを実行します。
図13-5に示すように、ページの右上にある「ページの実行」アイコンをクリックします。
レポートが表示されたら、「取消」をクリックして「Md Pdf Order」ページに戻ります。
「編集」アイコンをクリックして、別の注文を選択します。
図13-6のようなマスター・ディテール・ページが表示されます。新しい「Print PDF of Order」ボタンを確認します。
Oracle BI Publisherのライセンスを持たない場合、あるいはOracle BI Publisherをインストールまたは構成していない場合は、PDFとしてレポートを保存できません。
このアプリケーションの完全に機能するバージョンを表示するには、次のようにします。
apex.oracle.com
でホスティングされたバージョンを参照します。「アプリケーションのホスティングされたバージョンの表示」を参照してください。
デモンストレーション・アプリケーションに含まれるサンプル・ページを参照します。「アプリケーション」ホームページに戻って「Orders」ページを実行し、「編集」をクリックして注文を編集した後、「Print PDF Order」をクリックします。
このチュートリアルでは、1つの注文に固有のレポートを作成しました。同じレポートを、Order IDを渡さないで作成することもできます。これによって、すべての注文を含むPDFが作成されます。これを行うには、次のステップを実行します。
必要な列をすべて戻す1つのレポート問合せを作成します。セッション・ステート変数を含める必要はありません。
このチュートリアルで行った方法と同じ方法で、結果のXMLをMicrosoft Wordにロードし、表ウィザードを使用します。
グループ化の指定が求められたら、マスターとして使用する列を選択します。
結果の表示には、詳細レコードを含む表の上にグループ化された列が含められます。その後、ラベルを追加して表示をカスタマイズできます。レポートを実行すると、新しいページに各マスター値が表示されます。