ヘッダーをスキップ

Oracle Reports レポート作成ガイド
10gリリース2(10.1.2)
B25068-01
目次
目次
索引
索引

戻る 次へ

42
バーコードを使用したレポートの作成

この章では、バーコードを含むレポートについて学習します。この章の手順に従うと、図42-1に示すようなレポート出力を生成できます。

図42-1    バーコードJavaBeanのWebレポート出力


画像の説明

概要

使用例

この例では、ペーパー出力用とWeb用の2つのレポートを作成します。ペーパー・レポートには、ある会社の複数の品目を注文したある顧客に対する請求書が表示されます。バーコードは、注文の追跡情報を示します。

これらのサンプル・レポートの作成を通して、次を行います。

バーコードを含むサンプル・ペーパー・レポートを表示するには、サンプル・フォルダBarcodeBeanPaperを開き、result¥ShippingManifest.pdfを開きます。バーコードを含むサンプルのWebベースJSPレポートを表示するには、サンプル・フォルダBarcodeBeanWebを開き、result¥ShippingManifestWeb.jspを開きます。これらのレポートの開き方の詳細は、「はじめに」の「サンプル・レポートへのアクセス」を参照してください。この章で使用されているサンプル・ファイルのリストと説明を表42-1に示します。

表42-1    レポートのサンプル・ファイル 
ファイル  説明 

Examples¥BarCodeBeanPaper¥result¥ShippingManifest.pdf 

バーコードを含んだペーパー・レポートの最終PDFバージョン。 

Examples¥BarCodeBeanPaper¥scripts¥oraclebarcode.jar 

バーコードJavaBean。 

Examples¥BarCodeBeanPaper¥scripts¥barcode_code.txt 

この章で使用されるすべてのコード。このファイルからコードをコピーして貼り付けると、入力する手間が省けます。 

Examples¥BarCodeBeanPaper¥source¥ShippingManifest.rdf 

サンプル・ペーパー・レポートのソース・ファイル。Reports BuilderでこのRDFを実行すると、ペーパー・レポートの最終結果がペーパー・デザイン・ビューに表示されます。 

Examples¥BarCodeBeanWeb¥result¥ShippingManifestWeb.jsp 

バーコードを含んだWebレポートの最終JSPバージョン。 

Examples¥BarCodeBeanWeb¥result¥ShippingManifestWeb.rdf 

バーコードを含んだWebレポートの最終RDFバージョン。 

Examples¥BarCodeBeanWeb¥result¥assets 

JSPが実行されたときにOracle Reportsによって生成されたイメージ。 

Examples¥BarCodeBeanWeb¥scripts¥SQL.txt 

入力する必要がある問合せのSQL。 

Examples¥BarCodeBeanWeb¥scripts¥barcode_code.txt 

この章で使用されるすべてのコード。このファイルからコードをコピーして貼り付けると、入力する手間が省けます。 

Examples¥BarCodeBeanWeb¥source¥ShippingLabel.html 

Webレポートのベースとして使用するHTMLページ。 

Examples¥BarCodeBeanWeb¥source¥ShippingManifestWeb.rdf 

サンプルWebレポートのソース・ファイル。Reports BuilderでWebに対してこのRDFを実行すると、Webレポートの最終結果がブラウザに表示されます。 

Examples¥BarCodeBeanWeb¥source¥assets¥* 

JSPベースのWebレポートをWeb上で正しく表示するために必要なイメージとその他のファイル。 

Examples¥BarCodeBeanWeb¥source¥assets¥BLAFbeige_logo.gif 

JSPベースのWebレポートで使用するイメージ。 

42.1 この例の前提条件

この章の例を作成するには、サンプル・ファイルが必要です(前述の「使用例」を参照)。また、Oracle Database付属のOrder Entryサンプル・スキーマに対するアクセス権が必要です。このサンプル・スキーマに対するアクセス権の有無が不明のときは、データベース管理者に問い合せてください。

42.1.1 REPORTS_CLASSPATH環境変数の更新

JavaBean(ペーパーベース・レポート用またはJSPベースのWebレポート用)を使用する前に、いくつかの手順を実行する必要があります。

この項では、REPORTS_CLASSPATH環境変数をJavaBeanの場所で更新します。Reports Builderを起動すると、この新しいクラス・パスからバーコードBeanの場所が認識されます。


注意

この項の手順を実行しておかないと、提供されている完成済レポート(ShippingManifestPaper.rdfおよびShippingManifestWeb.rdf)も実行できません。 


  1. REPORTS_CLASSPATH環境変数を探します。

    • Windowsの場合は、コマンド・プロンプトから「regedit」と入力してレジストリを開き、REPORTS_CLASSPATH環境変数を探します。レジストリを変更する前に、バックアップを作成しておくことをお勧めします。

    • UNIXの場合は、ORACLE_HOME/bin/reports.shREPORTS_CLASSPATH環境変数を探します。

  2. oraclebarcode.jarファイルの場所を、REPORTS_CLASSPATHの既存のエントリに付け加えます。たとえば、次のようになります。

これでレポートを作成する準備が完了しました。ペーパーベース・バーコード・レポートを作成する方法を学習するには、第42.2項「ペーパー出力用バーコード・レポートの作成」を参照してください。Web用のJSPベース・バーコード・レポートを作成する方法を学習するには、第42.3項「Web用バーコード・レポートの作成」を参照してください。

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

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

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

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


注意

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


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

  1. Reports Builderを起動します。


    注意

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


  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つずつ(BARCODECONSTANTSとBARCODEMAKER)作成されたことがわかります。

42.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という名前で保存します。

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

42.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. レポートを保存します。

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

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

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

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


    画像の説明

42.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. コードがコンパイルされたら、「閉じる」をクリックします。

42.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は次のようになります。

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


画像の説明

42.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. レポートがペーパー・デザイン・ビューに表示されたら、ペーパー・レイアウト・ビューでレイアウト・オブジェクトの配置を調整して、図42-4のような外観にします。このフォーマットを作成するには、次の操作を実行します。

    • ペーパー・レイアウト・ビューで、周囲の親枠M_G_CUST_FIRST_NAME_GRPFRを削除してから、ツールバーのConfine Offボタンと「フレックス・オフ」ボタンをクリックします。

    • サンプル・レポート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を「太字」に設定します。

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

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

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


      画像の説明


      注意

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


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

42.3 Web用バーコード・レポートの作成

この項の手順は、第42.2.1項「Reports BuilderへのJavaクラスのインポート」でインポートしたバーコードJavaBeanを使用するJSPベースのWebレポートを作成する方法を示しています。バーコードを含んだペーパー・レポートを作成する場合は、第42.2項「ペーパー出力用バーコード・レポートの作成」を参照してください。

JSPベースのWebレポートの作成方法がわからない場合は、作成方法を学習するには、Oracle Reportsチュートリアルを参照してください。

この項で作成するレポートは、ペーパー出力用に作成したレポートと同じです。つまり、特定の顧客に対する請求書を表示するレポートを作成します。この請求書には、顧客の住所、注文内容および注文の追跡番号を表すバーコードが表示されます。このバーコードを使用して、発注の状態を確認できます。

提供されているJSPレポートの最終バージョンを実行すると、これらの手順での作成結果を確認できます。ただし、Webに対してレポートを実行する前に、ソース・コード内でイメージの場所を更新する必要があるので注意してください(第42.3.3項「バーコードJavaBeanの初期化とそのプロパティの設定」を参照)。


注意

この項での作業を開始する前に、必要なファイルをすべてインポートしたか、およびJavaクラスをインポートしてクラス・パスを設定したかを確認する必要があります。第42.1項「この例の前提条件」および第42.2.1項「Reports BuilderへのJavaクラスのインポート」を参照してください。 


42.3.1 既存のHTMLファイルにおける問合せの作成

JSPベースのWebレポートを作成する際に、既存のHTMLファイルをテンプレートとして使用できます。この項の手順では、Reports BuilderでのHTMLファイルの開き方とそのファイルにデータを追加する方法について説明します。

既存のHTMLファイルに問合せを作成するには:

  1. Reports Builderで、「ファイル」→「開く」を選択して、ファイルExamples¥BarCodeBeanWeb¥source¥ShippingLabel.htmlを開きます。

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

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

  4. 「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,
      COUNTRIES.COUNTRY_NAME FROM CUSTOMERS CUSTOMERS_A1, ORDERS,
      HR.COUNTRIES
    WHERE ((ORDERS.CUSTOMER_ID = CUSTOMERS_A1.CUSTOMER_ID)
      AND (CUSTOMERS_A1.CUST_ADDRESS.COUNTRY_ID = HR.COUNTRIES.COUNTRY_ID))
      AND ORDERS.ORDER_ID = :P_ORDER_ID ORDER BY order_ID
    


    注意

    この問合せは、次のいずれかの方法で入力できます。

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

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

     

  5. 「OK」をクリックします。

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

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

  7. データ・モデル・ビューで、グループ・オブジェクトをダブルクリックして、プロパティ・インスペクタを表示し、次のプロパティを設定します。

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

    作成したデータ・モデルは次のようになります。

    図42-5    JSPベースWebレポートの問合せのデータ・モデル


    画像の説明

  8. レポートをShippingLabel_<自分のイニシャル>.jspという名前で保存して、このレポートのJSPベースのWebソースを作成します。

これで、レポート用のデータを取り込む問合せの作成が完了しました。

42.3.2 データ・モデルにおける3つの式列の作成

注文の追跡番号、注文元および注文先を取得するために、レポートに3つの式列を作成する必要があります。

TrackingNumber式列を作成するには:

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

  2. 「G_SHIPMENT」グループ内をクリックして、新しい式列を作成します。

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

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

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

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

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

    function TrackingNumberFormula return char is
    begin
        return(:Customer_id||:Order_ID||:country_ID);
    end;
    


    注意

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


  5. 「コンパイル」をクリックします。


    注意

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


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

OriginScan式列を作成するには:

  1. G_SHIPMENTグループに、もう1つの式列を作成します。

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

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

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

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

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

    function OriginScanFormula return char is
    begin
      return('34324-OH-US');
    end;
    
    


    注意

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


  4. 「コンパイル」をクリックします。


    注意

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


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

DestinationScan式列を作成するには:

  1. G_SHIPMENTグループに、3つ目の式列を作成します。

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

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

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

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

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

    function DestinationScanFormula return char is
    begin
    return(:postal_code||'-'||:state_province||'-'||:country_ID);
    end;
    
    


    注意

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


  4. 「コンパイル」をクリックします。


    注意

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


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

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

これで、注文の追跡番号、注文元および注文先の値を取り込む3つの式列の作成が完了しました。作成したデータ・モデルは次のようになります。

図42-6    3つの式列を持つデータ・モデル


画像の説明

42.3.3 バーコードJavaBeanの初期化とそのプロパティの設定

JSPベースのWebレポートでJavaBeanと通信するには、JSPでそのJavaBeanを初期化する必要があります。ペーパー・レポートでJavaBeanを使用する場合とは異なり、Java Importerを使用してJavaクラスをインポートする必要はありません。

この項では、正しいデータを使用してバーコードが作成されるように、Beanのプロパティを設定する方法についても説明します。

ソース・ファイル(Examples/BarCodeBeanWeb/source/ShippingManifestWeb.rdf)を開いてWebソースの該当個所をレポートにコピーすると、コードを入力する手間が省けます。

JavaBeanが正しいバーコード・イメージを参照できるようにするには、まず正しいパスを使用してレポートを更新する必要があります。

パスを更新するには:

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

  2. Webソース・ビューで、「Define Path information for your barcode images」というテキストを検索します。

  3. このテキストの下で、イメージの生成先のディレクトリ(d:¥¥temp¥¥docroot¥¥images¥¥など)をポイントするようにパスを更新します。提供されているパスとの整合性を維持するようにしてください。


    注意

    これらのファイルが配置されるディレクトリは、Web Serverからアクセスできる必要があります。通常、このディレクトリは、JSPを保持するディレクトリの下にあります。このディレクトリがコンピュータ上に存在することを確認してから、Webに対してレポートを実行するようにします。 


JavaBeanを初期化するには:

  1. Webソース・ビューで、次のテキストを検索します。
    initialize the java beans

  2. このテキストの下に次のコードを入力します。

    <jsp:useBean id="BC" scope="page" 
    class="oracle.apps.barcode.util.BarCodeConstants" /> <jsp:useBean id="BM" scope="page" class="oracle.apps.barcode.BarCodeMaker" />


    注意

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


バーコードJavaBeanのプロパティを設定するには:

  1. Webソース・ビューで、setting the barcodes propertiesというテキストを検索します。

  2. このテキストの下に次のコードを入力します。

    <jsp:setProperty name="BM" property="BarCodeType" value="<%= BC.BAR_CODE_128 %>" />
    <jsp:setProperty name="BM" property="BarWidthInch" value="0.01"/>
    <jsp:setProperty name="BM" property="Directory" value="<%= BarcodePhysicalPath 
    %>"/>
    

バーコード変数を定義するには:

  1. Webソース・ビューで、次のテキストを検索します。
    Define variables to hold the data for the three barcodes

  2. このテキストの下に次のコードを入力します。

     <%! private String BarCodeData1 = "12345-XX-XX"; %>
     <%! private String BarCodeData2 = "12345-XX-XX"; %>
     <%! private String BarCodeData3 = "12345-XX-XX"; %>
    

For Eachループを作成するには:

  1. Webソース・ビューで、次のテキストを検索します。
    replace this with your RW:FOREACH open tag

  2. この行を次のコードで置き換えます。

    <rw:foreach id="R_G_SHIPMENT" src="G_SHIPMENT">
    
  3. 次のテキストを検索します。
    Replace this with your RW:FOREACH close tag

  4. この行を次のコードで置き換えます。

    </rw:foreach>
    

バーコードをレンダリングする式列をコーディングするには:

  1. Webソース・ビューで、 **BARCODEShippingTrackingNumber**というテキストを検索します。

  2. このテキストの下に次のコードを入力します。

    <!-- Get the value of the TrackingNumber and assign it to the variable -->
    <rw:getValue id="BarCodeData1" src="TrackingNumber"/>
    <!-- Set the data for tbe barcode and the filename -->
    <jsp:setProperty name="BM" property="BaseCodeData" value="<%= BarCodeData1 %>"/>
    <jsp:setProperty name="BM" property="FileName" value="<%= BarCodeData1 %>"/>
    <!-- Render the barcode -->
    <% BM.renderBarCode(); %>
    <!-- View the image in the page -->
    <img src="assets/barcodes/<%= BarCodeData1 %>">
    
    


    注意

    "<!--"で始まる行はコメントです。コードにコメントを挿入しない場合は、これらの行を追加する必要はありません。 


  3. Webソース・ビューで、次のテキストを検索します。
    **BARCODEOriginScan**

  4. このテキストの下に次のコードを入力します。

    <!-- Get the value of the OriginScan and assign it to the variable -->
    <rw:getValue id="BarCodeData2" src="OriginScan"/>
    <!-- Set the data for tbe barcode and the filename -->
    <jsp:setProperty name="BM" property="BaseCodeData" value="<%= BarCodeData2 %>"/>
    <jsp:setProperty name="BM" property="FileName" value="<%= BarCodeData2 %>"/>
    <!-- Render the barcode -->
    <% BM.renderBarCode(); %>
    <!-- View the image in the page -->
    <img src="assets/barcodes/<%= BarCodeData2 %>">
    
  5. Webソース・ビューで、**BARCODEDestinationScan**というテキストを検索します。

  6. このテキストの下に次のコードを入力します。

    <!-- Get the value of the DestinationScan and assign it to the variable -->
    <rw:getValue id="BarCodeData3" src="DestinationScan"/>
    <!-- Set the data for tbe barcode and the filename -->
    <jsp:setProperty name="BM" property="BaseCodeData" value="<%= BarCodeData3 %>"/>
    <jsp:setProperty name="BM" property="FileName" value="<%= BarCodeData3 %>"/>
    <!-- Render the barcode -->
    <% BM.renderBarCode(); %>
    <!-- View the image in the page -->
    <img src="assets/barcodes/<%= BarCodeData3 %>">
    
  7. レポートをJSPとして保存します。

42.3.4 Webに対するレポートの実行

Webレポートの作成が完了した後、このレポートをWebに対して実行し、結果を確認する必要があります。

  1. オブジェクト・ナビゲータで、レポート名ShippingManifestWeb_<自分のイニシャル>をクリックします。

  2. ツールバーで「Webレイアウトを実行」ボタンをクリックして、レポートをブラウザに対して実行します。


    注意

    • デフォルトのブラウザがNetscape 7.0で、ブラウザが表示されない場合は、レジストリ・キーHKEY_CURRENT_USERS¥Software¥Oracle¥Toolkit¥Tkbrowserをデフォルトのブラウザの場所に設定します。BrowserNameキーおよびBrowserPathキーが正しい値を反映していることを確認してください。たとえば、次のようになります。
      BrowserName=Netscape 7; BrowserPath=
      C:¥Program Files¥Netscape¥Netscape¥Netscp.exe

    • major.minorバージョン関連のエラーで「Webレイアウトを実行」が失敗した場合、CLASSPATH環境変数またはREPORTS_CLASSPATH環境変数を次のように更新する必要があります。oc4j.jarファイル・パス内の9.0.xORACLE_HOMEの指定を削除します(oc4j.jarファイル・パスは10gリリース2(10.1.2)ORACLE_HOMEのみを指定している必要があります)。

     

    作成したレポートが、次のようにWebブラウザに表示されます。

    図42-7    バーコードを含んだ最終的なJSPベースWebレポートのスナップショット


    画像の説明


    注意

    意図した結果が得られたかどうかがわからない場合は、resultsディレクトリにあるShippingManifestWeb.htmlをWebブラウザでいつでも開くことができます。あるいは、イメージ・パスの更新後、Webに対してShippingManifestWeb.jspを実行すると、レポートがブラウザに表示されます。 


42.4 まとめ

これで、すべての作業が完了しました。バーコードJavaBeanを使用してバーコード・イメージを生成するペーパー・レポートおよびJSPベースのWebレポートが完成しました。

この章で学習した内容は次のとおりです。

この例で使用されているウィザード、ビュー、プロパティの詳細は、Oracle Reportsオンライン・ヘルプを参照してください。このヘルプは、第3.1.1項「Oracle Reportsオンライン・ヘルプの使用」で説明しているとおり、Reports BuilderまたはOracle Technology Network(OTN)から表示できます。


戻る 次へ
Oracle
Copyright © 2003, 2005 Oracle.

All Rights Reserved.
目次
目次
索引
索引