Oracle Reports レポート作成ガイド 10gリリース2(10.1.2) B25068-01 |
|
この章では、条件に応じて、異なる複数のフォーム・レターの生成が可能なレポートについて学習します。この章の手順に従うと、図22-1および図22-2に示すようなレポート出力を生成できます。
このレポートでは、1つの問合せを使用してすべてのデータを選択します。
このレポートでは、フォーム・レター・レイアウト・スタイルを使用します。また、レターを構成する各種ボイラープレートを作成します。これらのボイラープレート・オブジェクトの印刷を制御するには、垂直方向に縮小するアンカーとPL/SQLフォーマット・トリガーを使用して、指定した条件を満たす従業員に条件ごとに異なるフォーム・レターを作成します。
このサンプルでは、全従業員を会社主催のピクニックに招待するフォーム・レターを作成します。ただし、成績上位の営業担当者に送るフォーム・レターには、ディナー・パーティへの特別招待を加えます。一方、その他の従業員には、ディナーへの招待のかわりに感謝の文言を加えます。
このサンプル・レポートの作成過程では、次を行います。
条件付きフォーム・レター・レポートのサンプルを表示するには、サンプル・フォルダcondform
を開き、Oracle Reportsのサンプルcondforml.rdf
を開きます。アクセス方法の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。
この章の例を作成するには、Oracle Database付属のSCOTTサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。
この例のように、単一問合せレポートを作成する場合、レポート・ウィザードを使用して、データ・モデルとレイアウトを同時に作成できます。
SELECT ENAME, COMM FROM EMP ORDER BY ENAME
データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第22.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。
注意
Dear Employee &<ENAME>, Mark your calendar! You are invited to attend the Summit Sporting Goods annual picnic on June 15, from 11:00 AM to 6:00 PM. Be prepared for lots of food, lots of entertainment, and lots of fun.
condform1_<自分のイニシャル>.rdf
という名前で保存します。
レポート・ウィザードで基本的なテキストを追加したら、追加テキストを作成する必要があります。このテキストは繰返し枠の内側に収まる必要があります。そのため、テキストを追加する前に、繰返し枠のサイズを変更しておきます。
R_G_ENAME
と入力し、それを検索します。
Because you're one of our top sales representatives, we would like to invite you to a celebration dinner after the picnic. Employees such as yourself brought in over $10 million in increased revenues this year, a 15% increase over last year. The dinner will be held at the City Inn from 7:00 PM to midnight. Dinner will be served at 7:30 PM. Please reply to Human Resources if you plan to attend.
B_ALL2
とします。
We would also like to take this opportunity to thank you for all of your efforts over the last year. As a result of your hard work, company revenues increased 15%.
B_ALL3
とします。
I look forward to seeing you there! J. King President Summit Sporting Goods
B_ALL
に変更します。
B_SALESREPおよびB_ALL2のテキストは、それぞれ特定の従業員にのみ該当します。したがって、各テキストを表示するかどうかを決定する条件を適用する必要があります。また、オブジェクト(B_SALESREP、B_ALL2など)が印刷されないときは、その下のオブジェクト(B_ALL2、B_ALL3など)がレイアウトで上に移動する必要があります。移動しないと、表示されないオブジェクトがある従業員のレポート出力には、大きな空白ができます。この問題を解決するには、テキスト・オブジェクトをアンカーで連動します。
function B_SalesrepFormatTrigger return boolean is begin if :comm >= 500 then return(TRUE); else return(FALSE); end if; end;
このボイラープレートは、コミッションが$500より多い従業員のレターにのみ印刷されます。
function B_ALL2FormatTrigger return boolean is begin if ((:comm < 500) or (:comm is null)) then return(TRUE); else return(FALSE); end if; end;
このロジックによって、B_SALESREPが印刷されないレターにのみB_ALL2が印刷されます。
これで、すべての作業が完了しました。条件付きフォーム・レター・レポートは正常に作成されました。この章で学習した内容は次のとおりです。
この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第3.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Reports BuilderまたはOracle Technology Network(OTN)から表示できます。
|
Copyright © 2003, 2005 Oracle. All Rights Reserved. |
|