14
グループ左の式レポートの作成
この章では、式列が組み込まれたグループ左の式レポートについて学習します。この章の手順に従うと、図14-1に示すようなレポート出力を生成できます。
図14-1 式レポートの出力
画像の説明
概要
- サマリー列と同様に、式列はユーザーが作成する計算列です。サマリー列と違って、式列の値は指定したPL/SQL式に基づいて計算されます。式にはレポート内の別の列のデータを使用できますが、これは必須ではありません。
- 式列は、プレースホルダ列など、別の列にあるデータに対してユーザー定義の計算を実行するときに使用します。パラメータの値を設定するために、式列を使用しないでください。
- 式列には、PL/SQL式を使用して計算された列が少なくとも1つ含まれます。式列は、使用方法がサマリー列と似ています。
- 式列の詳細は、Oracle Reportsオンライン・ヘルプを参照してください。
データ・リレーションシップ
- 式レポートを作成するには、問合せを作成してデータを選択します。次に、列を新たに作成してレポートのグループに追加します。列のプロパティ・シートで列の式を指定します。
- サマリーと同様に、データベースから式を選択しません。ただし、サマリーではOracle Reportsに付属するパッケージ化された計算を使用しますが、式列ではPL/SQLファンクションの参照によって提供される式を使用します。これらの式には、正当なPL/SQL構文をすべて使用できます。PL/SQL構文によって、使用する式の柔軟性が大幅に向上します。
- 式では、単一レコードのデータを使用して計算を行います。この単一レコードは、複数の列にまたがることがあります。この点が、単一列の複数レコードのデータを集計するサマリーとの大きな違いです。
レイアウト
このレポートでは、デフォルトのグループ左書式をそのまま使用します。
使用例
このサンプル・レポートの作成過程では、次を行います。
- レポート・ウィザードを使用したグループ左スタイルでの単純なレポートの作成。このレポートには必要なデータベース列をすべて選択する問合せが1つ含まれます。
- 各顧客の税金と発注の合計を計算する2つの式列の手動作成と、その式列のレポートへの追加。
式レポートのサンプルを表示するには、サンプル・フォルダformula
を開き、Oracle Reportsのサンプル・レポートformula.rdf
を開きます。このファイルの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。
14.1 この例の前提条件
この章の例を作成するには、Oracle Database付属のOrder Entryサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。
14.2 レポート・ウィザードを使用した単純なレポートの作成
レポートは、レポート・ウィザードを使用して作成するか、または独自に作成できます。この例の単純なレポートを作成する場合は、レポート・ウィザードを使用できます。このウィザードを使用すると、レポートのレイアウトの定義やデータ定義の設定を行うことができます。
簡単なレポートを作成するには:
- Reports Builderを起動します。すでに起動している場合は、「ファイル」→「新規」→「レポート」を選択します。
- 「ようこそ」ダイアログ・ボックスまたは「新規レポート」ダイアログ・ボックスで、「レポート・ウィザードを使う」を選択して「OK」をクリックします。
- 「ようこそ」ページが表示されたら、「次へ」をクリックします。
- 「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。
- 「タイトル」ページで、「グループ左」を選択し、「次へ」をクリックします。
- 「データ・ソース」ページで、「SQL問合せ」をクリックし、「次へ」をクリックします。
- 「データ」ページの「データ・ソース定義」フィールドに次のSELECT文を入力します。
SELECT ALL CUSTOMERS_A1.CUSTOMER_ID, ORDERS.ORDER_ID, ORDERS.ORDER_TOTAL
FROM CUSTOMERS CUSTOMERS_A1, ORDERS
WHERE (ORDERS.CUSTOMER_ID = CUSTOMERS_A1.CUSTOMER_ID)
ORDER BY CUSTOMERS_A1.CUSTOMER_ID
注意
この問合せは、次のいずれかの方法で入力できます。
- 提供されているテキスト・ファイル
formula_code.txt からコードをコピーして「データ・ソース定義」フィールドに貼り付けます。
- 「クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。
- 「データ・ソース定義」フィールドにコードを入力します。
|
- 「次へ」をクリックします。
注意
データベースにまだ接続していない場合は、「クエリー・ビルダー」または「次へ」をクリックしたときに、データベースに接続するよう求められます。この例に該当するスキーマが含まれるデータベースに接続してください。第14.1項「この例の前提条件」に、この例のサンプル・スキーマの要件に関する説明があります。
|
- 「グループ」ページで、「CUSTOMER_ID」を選択し、「>」ボタンをクリックして、このフィールドを「グループ・フィールド」リストに移動し、「次へ」をクリックします。
- 「フィールド」ページで「>>」ボタンをクリックして、すべてのフィールドを「表示フィールド」リストに移動し、「次へ」をクリックします。
- 「合計」ページで「ORDER_TOTAL」、「合計」の順にクリックし、「次へ」をクリックします。
- 「テンプレート」ページで、「事前定義テンプレート」を選択し、「Beige」をクリックします。次に「終了」をクリックして、ペーパー・デザイン・ビューにレポート出力を表示します。表示は次のようになります。
図14-2 式レポートのペーパー・デザイン・ビュー
画像の説明
- レポートを
formulareport_<自分のイニシャル>.rdf
という名前で保存します。
14.3 2つの式列の作成
データ・ソースの値に基づく計算が頻繁に行われます。この計算方法の1つとして、式列を使用します。この項の手順では、次の値を計算する2つの式列を作成する方法について説明します。
14.3.1 税金を計算するための式列の作成
税金を計算する式列を作成するには:
- Reports Builderで、ツールバーの「データ・モデル」ボタンをクリックして、レポートのデータ・モデル・ビューを表示します。
作成したデータ・モデルは次のようになります。
図14-3 式レポートのデータ・モデル
画像の説明
- ツール・パレットの「式列」ツールをクリックし、次にORDER_TOTALの下にある「G_ORDER_ID」グループ内でクリックして式列を作成します。
ヒント
ツール・パレットとツールバーのツール名を表示するには、マウスをドラッグして各アイコンの上に置きます。そうすると、そのアイコンを説明するヒント・テキストが表示されます。
|
- 新しい式列オブジェクト(CF_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。
- 「一般情報」で、「名前」プロパティを「Tax」に設定します。
- 「プレースホルダ/式」で、「PL/SQL式」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。
- PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。
function TAXFormula return Number is
tax number;
begin
tax := :ORDER_TOTAL * .07;
return (tax);
end;
- 「コンパイル」をクリックします。
- エラー・メッセージが表示されない場合は、「閉じる」をクリックします。エラー・メッセージが表示された場合は、入力したコードが前述のコードと外見が同じかどうか、列名に注意して確認します。
- プロパティ・インスペクタを閉じます。
各注文の税金(税率7%)を計算する式列が作成されました。
14.3.2 顧客の発注合計額を計算する式列の作成
顧客の発注合計額を計算する式列を作成するには:
- 第14.3.1項「税金を計算するための式列の作成」の手順2と3を繰り返します。ツール・パレットの「式列」ツールをクリックし、TAXの下にある「G_ORDER_ID」グループをクリックします。次に、「CF_1」をダブルクリックしてプロパティ・インスペクタを表示します。
- 列名を
SALES_TOTAL
に変更します。
- PL/SQLエディタを開き、次のように式を変更します。
function SALES_TOTALFormula return Number is
sales_total number;
begin
sales_total := :ORDER_TOTAL + :TAX;
return (sales_total);
end;
- 「コンパイル」をクリックします。
- エラー・メッセージが表示されない場合は、「閉じる」をクリックします。エラー・メッセージが表示された場合は、入力したコードが前述のコードと外見が同じかどうか、列名に注意して確認します。
- プロパティ・インスペクタを閉じます。
各顧客の発注合計額を計算する式列が作成されました。その結果、データ・モデルは次のようになります。
図14-4 式列を持つデータ・モデル
画像の説明
14.3.3 レポート・レイアウトへの式列の追加
式列の作成が終了したら、レポート・レイアウトに式列を追加する必要があります。それには、レポート・ウィザードに戻る方法が最も簡単です。
レポート・レイアウトに式列を追加するには:
- データ・モデル・ビューで、キャンバスを右クリックして「レポート・ウィザード」を選択します。
- レポート・ウィザードで、「フィールド」タブをクリックします。「使用可能フィールド」リストに、新しい式列が2つ表示されます。式列をそれぞれクリックし、「>」ボタンをクリックして、各式列を「表示フィールド」リストに移動します。
- 「終了」をクリックして、レポート出力をペーパー・デザイン・ビューに表示します。表示は次のようになります。
図14-5 式レポートの最終出力
画像の説明
14.4 まとめ
これで、すべての作業が完了しました。式ペーパー・レポートは正常に作成されました。この章で学習した内容は次のとおりです。
- レポート・ウィザードを使用して、レポートのレイアウトを定義する。
- 2つの式列を作成してレポートに追加する。
この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第3.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Reports BuilderまたはOracle Technology Network(OTN)から表示できます。