Oracle® Fusion Middleware Oracle Reportsレポート作成のためのユーザーズ・ガイド 11gリリース1(11.1.1) B61376-01 |
|
戻る |
次へ |
この項では、バーコードJavaBeanをインポートしてから、特定の顧客に対する請求書を表示するペーパーベースのレポートを作成します。この請求書には、顧客の住所、注文内容および注文の追跡番号を表すバーコードが表示されます。このバーコードをスキャンすることで、注文の状態を確認できます。
バーコードJavaBeanを使用してペーパー・レポートを作成するには、まず2つのJavaクラスをReports Builderにインポートする必要があります。これらのJavaクラスをインポートすると、Reports Builderによってレポートの作成に必要なパッケージが自動的に作成されます。
注意: Webレポートを作成する場合は、JavaBeanをコールするJSPコードを作成するため、この作業が不要となります。 |
Javaクラスをインポートするには:
Reports Builderを起動します。
注意: 新しいREPORTS_CLASSPATH を使用するには、ここでReports Buildeを起動する必要があります。 |
「取消」をクリックして、「ようこそ」ダイアログ・ボックスを閉じます。
「プログラム」→「Javaクラスをインポート」を選択して、「Javaクラスをインポート」ダイアログ・ボックスを表示します。
「Javaクラスの選択」で、次のクラスにナビゲートします。
oracle.apps.barcode.util.BarCodeConstants
注意: このクラスがリスト内に見つからない場合は、Reports Builderを一度終了し、REPORTS_CLASSPATH の設定に誤りがないか確認してください。その後、Reports Builderを再起動します。 |
クラスを選択して「インポート」をクリックします。
パッケージが作成されたら、2つ目のJavaBeanであるoracle.apps.barcode.BarCodeMaker
をインポートします。
「閉じる」をクリックします。
オブジェクト・ナビゲータで、「MODULE 1」というレポートの下の「プログラム・ユニット」ノードをクリックします。Reports Builderによって、パッケージ仕様部とパッケージ本体が2つずつ(BARCODECONSTANTSとBARCODEMAKER)作成されたことがわかります。
このレポートでは、情報を格納するパッケージを作成する必要があります。
情報を格納するパッケージを作成するには:
オブジェクト・ナビゲータで、新規レポートの下の「プログラム・ユニット」ノードをクリックします。
ツールバーで「作成」ボタンをクリックして、「新規プログラム・ユニット」ダイアログ・ボックスを表示します。
「新規プログラム・ユニット」ダイアログ・ボックスで、globals
と入力します。
「パッケージ仕様」を選択し、「OK」をクリックしてPL/SQLエディタを表示します。
PL/SQLエディタで、次のコードを入力します。
PACKAGE globals IS bcobj ora_java.jobject; barcode_to_use varchar2(256); tempdir varchar2(100); directory_sep varchar2(2); END;
注意: 提供されているテキスト・ファイルbarcode_code.txt から、このコードをコピーして貼り付けることによっても、コードを入力できます。 |
「コンパイル」をクリックして、コードにエラーがないことを確認します。
注意: コードがコンパイルされない場合は、提供されているコードを正確に入力したかどうかを確認してください。 |
コードがコンパイルされた後、「閉じる」をクリックします。
オブジェクト・ナビゲータで、レポート名(「MODULE 1」など)をクリックします。
レポートをshippingmanifest_
<自分のイニシャル>.rdf
という名前で保存します。
これで、レポートのグローバル情報を格納するパッケージの作成が完了しました。
Before Reportトリガーを使用して、レポートの実行前に実行される特定のタスクを実行できます。ここでは、レポートで使用するバーコードのタイプ、およびバーコード・イメージを保存する一時ディレクトリを定義します。
Before Reportトリガーを作成するには:
オブジェクト・ナビゲータで、「SHIPPINGMANIFEST_<自分のイニシャル>
」の下の「レポート・トリガー」ノードを展開し、「Before Report」の横のアイコンをダブルクリックして、PL/SQLエディタを表示します。
PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。
function BeforeReport return boolean is begin globals.barcode_to_use := BarCodeConstants.BAR_CODE_128; globals.bcobj := barcodemaker.new(); return (TRUE); end;
値BarCodeConstants.BAR_CODE_128
を有効な任意の値に変更することによって、使用するバーコードのタイプを変更できます。どの値が有効かを知るには、オブジェクト・ナビゲータの「プログラム・ユニット」ノードでBarCodeConstantsパッケージ仕様部を開き、パッケージの内容を確認します。
注意: 提供されているテキスト・ファイルbarcode_code.txt から、このコードをコピーして貼り付けると、コードを入力できます。 |
「コンパイル」をクリックして、エラーがないことを確認します。
注意: エラーがある場合は、必要なJavaクラスをインポートしたかどうかを確認して、入力したコードと前述のコードを詳細に比較します。コードを変更した場合は、再度そのコードをコンパイルします。 |
コードがコンパイルされたら、「閉じる」をクリックします。「Before Report」トリガーの横のノード・アイコンが変わったことがわかります。
レポートを保存します。
これで、レポートを実行したときにバーコード・タイプを設定するトリガーの作成が完了しました。
この項では、レポートがサンプル・スキーマからデータを取得するために使用する問合せを手動で作成します。
問合せを作成するには:
オブジェクト・ナビゲータで、「SHIPPINGMANIFEST_<自分のイニシャル>
」の下にある「データ・モデル」ノードの横のビュー・アイコンをダブルクリックして、レポートのデータ・モデル・ビューを表示します。
データ・モデル・ビューで、ツール・パレットの「SQL問合せ」ツールをクリックし、データ・モデル・ビューの空いている場所をクリックして、「SQL問合せ文」ダイアログ・ボックスを表示します。
「SQL問合せ文」フィールドに、次のSELECT
文を入力します。
SELECT ALL CUSTOMERS_A1.CUST_FIRST_NAME, CUSTOMERS_A1.CUSTOMER_ID, CUSTOMERS_A1.CUST_LAST_NAME, CUSTOMERS_A1.CUST_ADDRESS.STREET_ADDRESS, CUSTOMERS_A1.CUST_ADDRESS.POSTAL_CODE, CUSTOMERS_A1.CUST_ADDRESS.CITY, CUSTOMERS_A1.CUST_ADDRESS.STATE_PROVINCE, CUSTOMERS_A1.CUST_ADDRESS.COUNTRY_ID, ORDERS.ORDER_ID, ORDERS.ORDER_DATE, ORDERS.ORDER_TOTAL, ORDER_ITEMS.LINE_ITEM_ID, PRODUCTS.PRODUCT_NAME, ORDER_ITEMS.UNIT_PRICE, ORDER_ITEMS.QUANTITY, COUNTRIES.COUNTRY_NAME FROM CUSTOMERS CUSTOMERS_A1, ORDER_ITEMS, ORDERS, PRODUCTS, HR.COUNTRIES WHERE ((ORDER_ITEMS.ORDER_ID = ORDERS.ORDER_ID) AND (ORDERS.CUSTOMER_ID = CUSTOMERS_A1.CUSTOMER_ID) AND (ORDER_ITEMS.PRODUCT_ID = PRODUCTS.PRODUCT_ID) AND (CUSTOMERS_A1.CUST_ADDRESS.COUNTRY_ID = HR.COUNTRIES.COUNTRY_ID)) AND ORDERS.ORDER_ID = :P_ORDER_ID ORDER BY order_ID, line_item_ID
注意: この問合せは、次のいずれかの方法で入力できます。
|
「OK」をクリックします。
サンプル・スキーマが格納されているデータベースに接続されていない場合は、ここでログインする必要があります。接続文字列がわからない場合は、データベース管理者に問い合せてください。この例では、Order Entryサンプル・スキーマを使用します。
バインド・パラメータp_order_id
が作成されたことを示すメッセージが表示された後、「OK」をクリックします。
作成したデータ・モデルで、[Shift]キーを押しながら次の列すべてを一度に選択し、現行の問合せの下にドラッグして、ディテール・グループを作成します。
LINE_ITEM_ID
PRODUCT_NAME
UNIT_PRICE
QUANTITY
結果のデータ・モデルは次のようになります。
この項では、JavaBeanと通信してバーコードを作成し、生成されたイメージのファイル名を返す式列を作成します。
式列を作成するには:
データ・モデル・ビューで、ツール・パレットの「式列」ツールをクリックします。
マスター・グループ(G_CUST_FIRST_NAME)内をクリックして、新しい式列を作成します。
新しい式列オブジェクト(CF_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。
「一般情報」で、「名前」プロパティを「ImageFilename」に設定します。
「列」で次の操作を行います。
「データ型」プロパティを「Character」に設定します。
「幅」プロパティを500に設定します。
「ファイルからの読込み」プロパティを「はい」に設定します。
「ファイル形式」プロパティを「イメージ」に設定します。
「プレースホルダ/式」で、「PL/SQL式」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。
PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。
function ImageFilenameFormula return VarChar2 is myFileName varchar2(500); result varchar2(500); barcodeData VarChar2(50) := :customer_ID || :order_ID; begin myFileName := srw.create_temporary_filename; barcodemaker.setBarWidthInch(globals.bcobj, 0.005); barcodemaker.setBaseCodeData(globals.bcobj,barcodeData); barcodemaker.setBarCodeType(globals.bcobj,globals.barcode_to_use); barcodemaker.setFullPath(globals.bcobj, myFileName); barcodemaker.renderBarCode(globals.bcobj); return(myFileName); end;
注意: 提供されているテキスト・ファイルbarcode_code.txt から、このコードをコピーして貼り付けると、コードを入力できます。 |
「コンパイル」をクリックして、エラーがないことを確認します。
注意: エラーがある場合は、必要なJavaクラスをインポートしたかどうかを確認して、入力したコードと前述のコードを詳細に比較します。コードを変更した場合は、再度そのコードをコンパイルします。 |
コードがコンパイルされたら、「閉じる」をクリックします。
2つ目の式列を作成するには:
データ・モデル・ビューで、ディテール・グループ「G_LINE_ITEM_ID」の式列を作成します。
式列のプロパティ・インスペクタを起動し、次のプロパティを設定します。
「一般情報」で、「名前」プロパティを「LineTotal」に設定します。
「列」で、「データ型」プロパティが「Number」に設定されていることを確認します。
「プレースホルダ/式」で、「PL/SQL式」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。
PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。
function LineTotalFormula return Number is begin return (:quantity * :unit_price); end;
注意: 提供されているテキスト・ファイルbarcode_code.txt から、このコードをコピーして貼り付けると、コードを入力できます。 |
「コンパイル」をクリックして、エラーがないことを確認します。
コードがコンパイルされたら、「閉じる」をクリックします。
レポートを保存します。
これでバーコード・レポートのデータ・モデルの作成が完了しました。このモデルには、バーコード情報を取得してレポートにバーコード・イメージを表示する式列と、発注合計額を表示する式列が含まれています。
作成したデータ・モデルと式列のPL/SQLは次のようになります。
レポートを実行するには、事前にレイアウトを作成する必要があります。
ペーパー・レイアウトを作成するには:
オブジェクト・ナビゲータで、レポートのノードの下にある「ペーパー・レイアウト」を右クリックし、「レポート・ウィザード」を選択します。
レポート・ウィザードの「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。
「スタイル」ページで、「グループ上」を選択し、「次へ」をクリックします。
「データ・ソース」ページで「次へ」をクリックします。
「データ」ページで「次へ」をクリックします。
「グループ」ページで、「グループ・フィールド」リストに次の各フィールドが含まれていることを確認します(含まれていない場合は、矢印ボタンを使ってこのリストに移動します)。
ORDER_ID
ORDER_DATE
CUSTOMER_ID
CUST_FIRST_NAME
CUST_LAST_NAME
STREET_ADDRESSS
POSTAL_CODE
COUNTRY_NAME
CITY
STATE_PROVINCE
COUNTRY_ID
ORDER_TOTAL
CF_1
「フィールド」ページで、「>>」ボタンをクリックしてすべてのフィールドを「表示フィールド」リストに移動し、「終了」をクリックします。
ペーパー・レイアウト・ビューで、ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックして、レポートを実行します。
ランタイム・パラメータ・フォームで、「P_ORDER_ID」の横に2354
と入力します。
レポートがペーパー・デザイン・ビューに表示されたら、ペーパー・レイアウト・ビューでレイアウト・オブジェクトの配置を調整して、図43-4のような外観にします。このフォーマットを作成するには、次の操作を実行します。
ペーパー・レイアウト・ビューで、周囲の親枠M_G_CUST_FIRST_NAME_GRPFR
を削除してから、ツールバーの「制限オフ」ボタンと「フレックス・オフ」ボタンをクリックします。
サンプル・レポートshippingmanifest.rdf
を参考に、次のような3つの四角形と3つのテキスト・オブジェクトを追加します。
Shipping Details: テキスト・プロパティを「Arial」「16」ポイント、「太字」に設定します。枠を作成して、フィールドcust_first_name、cust_last_name、street_address、city、state_province、postal、country_nameを追加します。
Tracking Details: テキスト・プロパティを「Arial」「16」ポイント、「太字」に設定します。ImageFilenameオブジェクトをこの四角形の上に移動します。
Order Details: テキスト・プロパティを「Arial」「16」ポイント、「太字」に設定します。Order IDおよびOrder Dateのラベルとフィールドをこの四角形の上に移動します。フィールドF_Order_Totalをこの四角形の上に移動し、テキスト・プロパティを「Courier New」、「24」ポイント、「太字」に設定します。
その他すべてのフィールドの値のテキスト・プロパティは「Courier New」、「10」ポイントに設定します。さらに、F_Line_Totalを「太字」に設定します。
数値フィールドは、通貨や小数部を表示するようフォーマットし、右揃えにします。
必要に応じて、各四角形、合計フィールド、および表の見出しの塗りつぶしカラーを設定します。
注意: 意図した結果が得られたかどうかがわからない場合は、サンプル・レポートShippingManifest.pdf をAcrobat Readerで開きます。あるいは、ペーパーに対してShippingManifest.rdf を実行すると、レポートがペーパー・デザイン・ビューに表示されます。 |
レポートを保存します。これで、ペーパー出力用バーコード・レポートの作成が完了しました。