ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Reportsレポート作成のためのユーザーズ・ガイド
11gリリース1(11.1.1)
B61376-01
  ドキュメント・ライブラリへ
ライブラリ
製品リストへ
製品
目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

43.2 ペーパー出力用バーコード・レポートの作成

この項では、バーコードJavaBeanをインポートしてから、特定の顧客に対する請求書を表示するペーパーベースのレポートを作成します。この請求書には、顧客の住所、注文内容および注文の追跡番号を表すバーコードが表示されます。このバーコードをスキャンすることで、注文の状態を確認できます。

43.2.1 Reports BuilderへのJavaクラスのインポート

バーコードJavaBeanを使用してペーパー・レポートを作成するには、まず2つのJavaクラスをReports Builderにインポートする必要があります。これらのJavaクラスをインポートすると、Reports Builderによってレポートの作成に必要なパッケージが自動的に作成されます。


注意:

Webレポートを作成する場合は、JavaBeanをコールするJSPコードを作成するため、この作業が不要となります。

Javaクラスをインポートするには:

  1. Reports Builderを起動します。


    注意:

    新しいREPORTS_CLASSPATHを使用するには、ここでReports Buildeを起動する必要があります。

  2. 取消」をクリックして、「ようこそ」ダイアログ・ボックスを閉じます。

  3. プログラム」→「Javaクラスをインポート」を選択して、「Javaクラスをインポート」ダイアログ・ボックスを表示します。

  4. 「Javaクラスの選択」で、次のクラスにナビゲートします。

    oracle.apps.barcode.util.BarCodeConstants
    

    注意:

    このクラスがリスト内に見つからない場合は、Reports Builderを一度終了し、REPORTS_CLASSPATHの設定に誤りがないか確認してください。その後、Reports Builderを再起動します。

  5. クラスを選択して「インポート」をクリックします。

  6. パッケージが作成されたら、2つ目のJavaBeanであるoracle.apps.barcode.BarCodeMakerをインポートします。

  7. 閉じる」をクリックします。

  8. オブジェクト・ナビゲータで、「MODULE 1」というレポートの下の「プログラム・ユニット」ノードをクリックします。Reports Builderによって、パッケージ仕様部とパッケージ本体が2つずつ(BARCODECONSTANTSBARCODEMAKER)作成されたことがわかります。

43.2.2 情報を格納するパッケージの作成

このレポートでは、情報を格納するパッケージを作成する必要があります。

情報を格納するパッケージを作成するには:

  1. オブジェクト・ナビゲータで、新規レポートの下の「プログラム・ユニット」ノードをクリックします。

  2. ツールバーで「作成」ボタンをクリックして、「新規プログラム・ユニット」ダイアログ・ボックスを表示します。

  3. 「新規プログラム・ユニット」ダイアログ・ボックスで、globalsと入力します。

  4. パッケージ仕様」を選択し、「OK」をクリックしてPL/SQLエディタを表示します。

  5. 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から、このコードをコピーして貼り付けることによっても、コードを入力できます。

  6. コンパイル」をクリックして、コードにエラーがないことを確認します。


    注意:

    コードがコンパイルされない場合は、提供されているコードを正確に入力したかどうかを確認してください。

  7. コードがコンパイルされた後、「閉じる」をクリックします。

  8. オブジェクト・ナビゲータで、レポート名(「MODULE 1」など)をクリックします。

  9. レポートをshippingmanifest_<自分のイニシャル>.rdfという名前で保存します。

これで、レポートのグローバル情報を格納するパッケージの作成が完了しました。

43.2.3 Before Reportトリガーの作成

Before Reportトリガーを使用して、レポートの実行前に実行される特定のタスクを実行できます。ここでは、レポートで使用するバーコードのタイプ、およびバーコード・イメージを保存する一時ディレクトリを定義します。

Before Reportトリガーを作成するには:

  1. オブジェクト・ナビゲータで、「SHIPPINGMANIFEST_<自分のイニシャル>」の下の「レポート・トリガー」ノードを展開し、「Before Report」の横のアイコンをダブルクリックして、PL/SQLエディタを表示します。

  2. 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から、このコードをコピーして貼り付けると、コードを入力できます。

  3. 「コンパイル」をクリックして、エラーがないことを確認します。


    注意:

    エラーがある場合は、必要なJavaクラスをインポートしたかどうかを確認して、入力したコードと前述のコードを詳細に比較します。コードを変更した場合は、再度そのコードをコンパイルします。

  4. コードがコンパイルされたら、「閉じる」をクリックします。「Before Report」トリガーの横のノード・アイコンが変わったことがわかります。

  5. レポートを保存します。

これで、レポートを実行したときにバーコード・タイプを設定するトリガーの作成が完了しました。

43.2.4 データ・モデル・ビューでの問合せの作成

この項では、レポートがサンプル・スキーマからデータを取得するために使用する問合せを手動で作成します。

問合せを作成するには:

  1. オブジェクト・ナビゲータで、「SHIPPINGMANIFEST_<自分のイニシャル>」の下にある「データ・モデル」ノードの横のビュー・アイコンをダブルクリックして、レポートのデータ・モデル・ビューを表示します。

  2. データ・モデル・ビューで、ツール・パレットの「SQL問合せ」ツールをクリックし、データ・モデル・ビューの空いている場所をクリックして、「SQL問合せ文」ダイアログ・ボックスを表示します。

  3. 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
    

    注意:

    この問合せは、次のいずれかの方法で入力できます。
    • 提供されているテキスト・ファイルbarcode_code.txtから、コードをコピーして「SQL問合せ文」フィールドに貼り付けます。

    • クエリー・ビルダー」をクリックして、コードを入力せずに問合せを作成します。

    • SQL問合せ文」フィールドにコードを入力します。


  4. OK」をクリックします。

    サンプル・スキーマが格納されているデータベースに接続されていない場合は、ここでログインする必要があります。接続文字列がわからない場合は、データベース管理者に問い合せてください。この例では、Order Entryサンプル・スキーマを使用します。

  5. バインド・パラメータp_order_idが作成されたことを示すメッセージが表示された後、「OK」をクリックします。

  6. 作成したデータ・モデルで、[Shift]キーを押しながら次の列すべてを一度に選択し、現行の問合せの下にドラッグして、ディテール・グループを作成します。

    • LINE_ITEM_ID

    • PRODUCT_NAME

    • UNIT_PRICE

    • QUANTITY

    結果のデータ・モデルは次のようになります。

    図43-2 問合せのデータ・モデル

    図43-2の説明は次にあります
    「図43-2 問合せのデータ・モデル」の説明

43.2.5 バーコード・イメージを取得する式列の作成

この項では、JavaBeanと通信してバーコードを作成し、生成されたイメージのファイル名を返す式列を作成します。

式列を作成するには:

  1. データ・モデル・ビューで、ツール・パレットの「式列」ツールをクリックします。

  2. マスター・グループ(G_CUST_FIRST_NAME)内をクリックして、新しい式列を作成します。

  3. 新しい式列オブジェクト(CF_1)をダブルクリックしてプロパティ・インスペクタを表示し、次のプロパティを設定します。

    • 一般情報」で、「名前」プロパティを「ImageFilename」に設定します。

    • 」で次の操作を行います。

      • 「データ型」プロパティを「Character」に設定します。

      • 「幅」プロパティを500に設定します。

      • 「ファイルからの読込み」プロパティを「はい」に設定します。

      • 「ファイル形式」プロパティを「イメージ」に設定します。

    • プレースホルダ/式」で、「PL/SQL式」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。

  4. 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から、このコードをコピーして貼り付けると、コードを入力できます。

  5. 「コンパイル」をクリックして、エラーがないことを確認します。


    注意:

    エラーがある場合は、必要なJavaクラスをインポートしたかどうかを確認して、入力したコードと前述のコードを詳細に比較します。コードを変更した場合は、再度そのコードをコンパイルします。

  6. コードがコンパイルされたら、「閉じる」をクリックします。

43.2.6 発注合計額を返す式列の作成

2つ目の式列を作成するには:

  1. データ・モデル・ビューで、ディテール・グループ「G_LINE_ITEM_ID」の式列を作成します。

  2. 式列のプロパティ・インスペクタを起動し、次のプロパティを設定します。

    • 一般情報」で、「名前」プロパティを「LineTotal」に設定します。

    • 」で、「データ型」プロパティが「Number」に設定されていることを確認します。

    • プレースホルダ/式」で、「PL/SQL式」プロパティ・フィールドをクリックしてPL/SQLエディタを表示します。

  3. PL/SQLエディタで、テンプレートを使用して次のPL/SQLコードを入力します。

    function LineTotalFormula return Number is
    begin
      return (:quantity * :unit_price);
    end;
    

    注意:

    提供されているテキスト・ファイルbarcode_code.txtから、このコードをコピーして貼り付けると、コードを入力できます。

  4. 「コンパイル」をクリックして、エラーがないことを確認します。

  5. コードがコンパイルされたら、「閉じる」をクリックします。

  6. レポートを保存します。

これでバーコード・レポートのデータ・モデルの作成が完了しました。このモデルには、バーコード情報を取得してレポートにバーコード・イメージを表示する式列と、発注合計額を表示する式列が含まれています。

作成したデータ・モデルと式列のPL/SQLは次のようになります。

図43-3 2つの新しい式列を持つデータ・モデル

図43-3の説明は次にあります
「図43-3 2つの新しい式列を持つデータ・モデル」の説明

43.2.7 レポートのレイアウトの作成

レポートを実行するには、事前にレイアウトを作成する必要があります。

ペーパー・レイアウトを作成するには:

  1. オブジェクト・ナビゲータで、レポートのノードの下にある「ペーパー・レイアウト」を右クリックし、「レポート・ウィザード」を選択します。

  2. レポート・ウィザードの「レポート・タイプ」ページで、「ペーパー・レイアウトのみ作成」を選択し、「次へ」をクリックします。

  3. スタイル」ページで、「グループ上」を選択し、「次へ」をクリックします。

  4. データ・ソース」ページで「次へ」をクリックします。

  5. データ」ページで「次へ」をクリックします。

  6. グループ」ページで、「グループ・フィールド」リストに次の各フィールドが含まれていることを確認します(含まれていない場合は、矢印ボタンを使ってこのリストに移動します)。

    • 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

  7. フィールド」ページで、「>>」ボタンをクリックしてすべてのフィールドを「表示フィールド」リストに移動し、「終了」をクリックします。

  8. ペーパー・レイアウト・ビューで、ツールバーの「ペーパー・レイアウトを実行」ボタンをクリックして、レポートを実行します。

  9. ランタイム・パラメータ・フォームで、「P_ORDER_ID」の横に2354と入力します。

  10. レポートがペーパー・デザイン・ビューに表示されたら、ペーパー・レイアウト・ビューでレイアウト・オブジェクトの配置を調整して、図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を「太字」に設定します。

    • 数値フィールドは、通貨や小数部を表示するようフォーマットし、右揃えにします。

    • 必要に応じて、各四角形、合計フィールド、および表の見出しの塗りつぶしカラーを設定します。

    図43-4 バーコード・ペーパー・レポートのペーパー・デザイン・ビュー

    図43-4の説明は次にあります
    「図43-4 バーコード・ペーパー・レポートのペーパー・デザイン・ビュー」の説明


    注意:

    意図した結果が得られたかどうかがわからない場合は、サンプル・レポートShippingManifest.pdfをAcrobat Readerで開きます。あるいは、ペーパーに対してShippingManifest.rdfを実行すると、レポートがペーパー・デザイン・ビューに表示されます。

  11. レポートを保存します。これで、ペーパー出力用バーコード・レポートの作成が完了しました。