business objects のcrystal reports から oracle bi …...1....

46
Business Objects Crystal Reports から Oracle BI Publisher へのレポートの変換 Oracle ホワイト・ペーパー 2008 2

Upload: others

Post on 13-Mar-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

Business Objects の Crystal Reports から Oracle BI Publisherへのレポートの変換

Oracle ホワイト・ペーパー 2008 年 2 月

Page 2: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

Business Objects の Crystal Reports から Oracle BI Publisher

へのレポートの変換

はじめに .............................................................................................................. 3 Crystal Reports と Oracle BI Publisher の高度な比較 ....................................... 3 Crystal Reports の段階的な変換......................................................................... 4

1. 接続およびデータ・モデルの変換 ........................................................ 5 1.1:データソースへの接続の変換 ...................................................... 5 1.2:Crystal SQL から Oracle BI Publisher データ・モデルへの変換 5 1.3:パラメータの変換 .......................................................................... 6 1.4:サマリー・フィールド、総合計フィールド、組込み関数、カス

タム関数、および計算式フィールドの変換 ....................................... 7 2. レイアウトの変換.................................................................................... 9

2.1:空の RTF のオープン ..................................................................... 9 2.2:サンプル・データの取得 .............................................................. 9 2.3:レイアウト・テンプレートの作成 .............................................. 9 2.4:レポートのプレビューおよびアップロード............................. 10

Crystal Reports 変換の例 .................................................................................. 10 EmployeeSalaryReport ................................................................................. 10 1. 接続およびデータ・モデルの分析 ...................................................... 12

1.1:データソースの接続 .................................................................... 12 1.2:SQL 問合せ.................................................................................... 14 1.3:パラメータ .................................................................................... 15 1.4:サマリー・フィールド、総合計フィールド、組込み関数、カス

タム関数、および計算式フィールド ................................................. 18 接続およびデータ・モデルの変換 ........................................................... 19

1.1:データソースの接続の変換 ........................................................ 19 1.2:データ・モデルへの SQL の変換 ............................................... 19 1.3:パラメータの変換 ........................................................................ 21 1.4:サマリー・フィールド、総合計フィールド、組込み関数、カス

タム関数、および計算式フィールドの変換 ..................................... 24 2. レポート・レイアウトの分析 .............................................................. 26 レポート・レイアウトの変換 ................................................................... 31

2.1:空の RTF のオープン ................................................................... 31 2.2:サンプル・データの取得 ............................................................ 31 2.3:レイアウト・テンプレートの作成 ............................................ 32 2.4:レポートのプレビューおよびアップロード............................. 44

結論 .................................................................................................................... 45

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

2

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 3: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

はじめに

4 年以上に渡り、Oracle E-Business Suiteに組み込まれているOracle Business Intelligence

Publisher(Oracle BI Publisher、旧称はOracle XML Publisher)は、さまざまなビジ

ネス・ドキュメント要件を満たすために進化してきました。2006 年にOracle Application

Serverの独立した製品およびオプションとしてリリースされて以来、レポートや重

要なビジネス・ドキュメントを作成、管理、配信するスタンドアロン・システム

として多くの企業で実装されてきました。また、Oracle BI PublisherはOracle

Business Intelligence Enterprise Edition、Oracle PeopleSoft Enterprise、Oracle JD

Edwards EnterpriseOneに含まれており、高度に書式化されたドキュメントを簡単に

作成および保存できます。この製品の利点が実証されているため、異なるレポー

ト・ツールのレポートをOracle BI Publisherへ変換する方法に高い関心が寄せられ

ています。このホワイト・ペーパーでは、Crystal Reports®レポートをOracle BI Publisher

レポートに手動で変換する段階的なアプローチと例について説明します。

Crystal Reports と Oracle BI Publisher の高度な比較

データ・モデルとレイアウトを分離する一意なアーキテクチャを使用した、レポー

トごとに複数のレイアウトを作成できる Oracle BI Publisher によって、レポートを

作成し管理する時間とコストが削減されます。Crystal Reports は、データ問合せお

よびレイアウト定義を単一の RPT ファイルに結合します。このため、別のレポー

トに同じデータが格納されていても、新しいレイアウトの要件が発生するたびに

新しいレポートを作成する必要があります。

Oracle BI Publisher は、Microsoft Office Word、Adobe Acrobat、Microsoft Office Excel

などの使い慣れたデスクトップ・アプリケーションを活用して、レイアウトを作

成します。これによって、技術者以外のユーザーでも簡単にレポートのレイアウ

トを作成できます。Crystal Reports には、レポートを作成するための独自の開発者

指向ツールがあります。

Oracle BI Publisher は、言語の翻訳に使用されるオープンで標準的なテクノロジの

XLIFF(XML Localization Interchange File Format)を利用して、最大 185 の言語と

244 の地域をサポートします。特定の言語のレポートを作成または表示するため

に、その言語の Oracle BI Publisher をインストールする必要はありません。Crystal

Reports は、言語サポートに制限があり(11 言語)、ユーザーは、対応する言語ご

とに個別のレポート・サーバーをインストールしなければなりません。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

3

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 4: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

Oracle BI Publisher は、複数の配信チャネル(電子メール、FTP、セキュアな FTP、

プリンタ、FAX、webDAV、AS2、CUPS サーバー)をサポートします。Crystal Reports

は、電子メール、FTP、プリンタ、受信ボックスの配信チャネルのみサポートし

ます。

Oracle BI Publisher を使用すると、アーキテクチャ、設計、翻訳、および配信の相

違に関係なく、Business Objects の Crystal Reports で作成されたものと同等のドキュ

メントとレポートを作成できます。

Crystal Reports の段階的な変換

注:

1. このホワイト・ペーパーで使用されるサンプル・レポートは、Crystal Reports

XI バージョンで作成されました。ただし、これらの手順は、他のエディ

ションや以前のバージョンの Crystal Reports のレポート作成ツールで作

成されたレポートにも適用できます。

2. レポート変換の前提条件は、Oracle BI Publisher Template Builder と Oracle

BI Publisher Enterprise Server です。Oracle BI Publisher Enterprise Server と

Oracle BI Publisher Template Builder を以下の URL からダウンロードして、

個別のシステムにインストールできます。

http://www.oracle.com/technology/software/products/publis

hing/index.html

3. 一部の手順では、Crystal Reports Designer 環境を参照するための適切なア

クセス、Oracle BI Publisher Enterprise Server への管理者レベル・アクセス、

および Oracle BI Publisher Template Builder への管理者または開発者レベ

ル・アクセスが設定されていると仮定します。

変換手順は以下の 2 段階に分かれます。

1. 接続およびデータ・モデルの変換

1.1. データソースの接続の変換

1.2. Crystal SQL から Oracle BI Publisher データ・モデルへの変換

1.3. パラメータの変換

1.4. サマリー・フィールド、総合計フィールド、組込み関数、カスタム関

数、および計算式フィールドの変換

2. レイアウトの変換

2.1. 空の RTF のオープン

2.2. サンプル・データの取得

2.3. レイアウト・テンプレートの作成

2.4. テンプレートのプレビューとアップロード

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

4

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 5: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

1. 接続およびデータ・モデルの変換

Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

では、データソースとしてデータベースを仮定します。

1.1:データソースへの接続の変換

レポートを変換する最初の手順として、レポートのデータソースの詳細を取得し

ます。Crystal Reports Developer®のData Explorerを使用して、データベース接続情

報を表示します。Crystal Reports Developerは、ODBC、Oracle Server、XMLなどの

複数のデータソースをサポートします。接続した後、Data Explorerはデータベース

の現在の接続を表示します。右クリックすると、プロパティ・オプションが表示

されます。プロパティ・ダイアログには、ODBC(RDO)やOracle Serverなどのデー

タベース・タイプ、データソース名またはサービス、ユーザーID、およびその他

の関連情報が表示されます。ODBC(RDO)データソース・タイプの場合、Windows

ODBC Administratorを参照してDSN名を検索し、データベース・サーバー情報を取

得する必要があります。Oracle Serverデータソース・タイプの場合、TNSN

ames.oraファイルのサービス名を検索してデータベース・サーバー情報を読み取る

必要があります。Crystal Reportsは、JDBC(JNDI)データソース・タイプもサポー

トします。つまり、JDBC接続またはJNDI接続のいずれかを選択できます。この接

続の詳細は、Data ExplorerまたはDatabase Expertで確認できます。

Oracle BI Publisher のデータベース接続を作成するには、Oracle BI Publisher Enterprise

にログオンして Admin タブに移動してください。取得したデータベースの詳細を

使用して、JDBC データソースを作成します。データベースに接続するサーバーに

JNDI サービスを追加して Oracle BI Publisher JNDI 設定の JNDI 名を参照すること

によって、JNDI データソースも作成できます。

1.2:Crystal SQL から Oracle BI Publisher データ・モデルへの変換

データソースを確認した後、データ・ロジックを調査および変換する必要があり

ます。

Oracle BI Publisher の各レポートには、データ・モデルがあります。データ・モデ

ルは、1 つ以上のデータセットで構成されます。SQL 問合せ、Web サービスの呼

出し、XML データを含むファイルへの直接参照など、いずれかのタイプにデータ

セットを指定できます。データ・テンプレートは、複数の問合せからなるデータ

のマージ、手続き型ルーチンの呼出し、結果として生じる XML データの階層の

定義など、レポート・データの高度な管理を実現するカスタム・データセット・

タイプです。

Crystal Reports Developer では、データ・ロジック定義が Database Expert にありま

す。ここでは、レポートで使用されるすべての表、コマンド、他のデータソース

を示します。Database Expert でコマンドを表示することもできます。「Database」

メニューの「Show SQL Query」を開いて、レポートのデータを取得する問合せを

表示できます。通常、パラメータの入力が求められます。また、SQL 問合せには、

パラメータ値が含まれます。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

5

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 6: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

Oracle BI Publisher で、データ・モデルに新しいデータセットを追加し、SQL 問合

せとしてデータソース・タイプを選択できます。Crystal Reports の'Show SQL Query'

ダイアログ・ウィンドウで SQL 問合せをコピーし、Oracle BI Publisher データセッ

トのテキスト領域に貼り付けます。

Crystal Reports は、データソースとしてデータベース関数をサポートします。デー

タ・ロジックが関数で定義され、その関数が呼び出されます。このような場合、

関数の機能を決定する関数を確認する必要があります。SQL 問合せのデータセッ

トまたはデータ・テンプレートで単一の値を返す関数を処理できますが、複雑な

関数の処理はデータ・テンプレートを使用します。Crystal Reports のレポートで

REF CURSOR を使用してレコードセットを取得する場合、データ・テンプレート

を使用する必要があります。Oracle BI Publisher は関数の戻り値として REF CURSOR

をサポートしますが、OUT または IN OUT パラメータとして REF CURSOR が関数

に使用される場合、戻り型として REF CURSOR を使用するラッパー関数が必要に

なります。また、REF CURSORを返すように元の関数を変更することもできます。

関数にデータの挿入、更新、または削除用の DML 文が含まれる場合、DML 文を

処理する部分と関数の選択問合せを処理する部分に関数を分ける必要があります。

選択問合せの前に実行する必要がある計算または DML 文は、beforeReport トリガー

を使用して実行します。同様に、問合せを実行してサーバーに XML データを受

信した後に実行する必要がある計算または DML 文は、afterReport トリガーを使用

して実行します。

1.3:パラメータの変換

注:この手順はオプションです。パラメータを使用するレポートにのみ必要です。

Crystal Reports のパラメータを検索するには、Field Explorer の Parameter Fields を

開きます。レポートに複数のパラメータが定義される場合がありますが、チェッ

ク記号のあるパラメータだけがレポートに関連付けられます。パラメータを右ク

リックして編集オプションを選択すると、各パラメータの詳細を表示できます。

Formula Workshop は、レコード選択にこれらのパラメータのロールを表示します。

Oracle BI Publisher のパラメータは、データ・モデルとともに Report Editor で定義

されます。これらのパラメータをデータベース問合せに渡すことができ、また、

動的なレイアウト設定のレイアウトに渡すこともできます。

Crystal Reports は、入力ボックスや値リストとしてのパラメータ、範囲指定のパラ

メータ、カスケード・パラメータ、日付ピッカーを使用する日付パラメータをサ

ポートします。

Oracle BI Publisher では、テキスト・パラメータ・タイプのパラメータとして入力

ボックスが Report Editor で定義されます。値リストも Report Editor で定義でき、

静的リストと動的リストの両方を作成できます。SQL 問合せを記述して動的 LOV

を定義します。

範囲指定のパラメータの場合、下限を入力する入力ボックスと上限を入力する入

力ボックスの 2 つの異なるパラメータを定義できます。この範囲でレポート出力

する場合、2 つのパラメータを連結して RTF テンプレートに表示できます。パラ

メータを定義してそれぞれを値リストに関連付けると、プロンプト動作のカス

ケードを Oracle BI Publisher で実行できます。値リストは問合せからデータを取得

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

6

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 7: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

するので、特定の LOV が別の LOV とバインドする SQL 問合せレベルでカスケー

ドの関係を作成する必要があります。パラメータ定義ページの UI に、カスケード

動作を有効にする'Refresh other parameters on change'チェック・ボックスがありま

す。日付ピッカーUI の日付パラメータも Oracle BI Publisher でサポートされます。

これらのパラメータをレポート・データに関連付けるには、Crystal Reports からコ

ピーしたレポート SQL問合せを編集する必要があります。渡されるパラメータは、

レポート SQL 問合せのホスト変数になります。データ・テンプレートの場合もレ

ポート SQL 問合せは同じように処理されます。また、パラメータ・セクションに

パラメータ名を設定する必要があります。

1.4:サマリー・フィールド、総合計フィールド、組込み関数、カスタム

関数、および計算式フィールドの変換

サマリー・フィールド、総合計フィールド、組込み関数、カスタム関数、および

計算式フィールドは、Crystal Reports で頻繁に使用されます。変換前に各レポート

のこれらの機能の役割を理解することが重要です。サマリー・フィールドと総合

計フィールドはデータ計算フィールドですが、組込み関数、カスタム関数、およ

び計算式フィールドは、レポート・レイアウト設定にも適用できます。このため、

最初に組込み関数、カスタム関数、および計算式フィールドをデータ計算関数と

レイアウト設定関数のカテゴリに分類する必要があります。データ抽出時にこれ

らの計算式または関数を処理できるかどうかを評価する必要があります。処理で

きる場合、データ計算関数カテゴリに分類されます。計算式フィールドが簡単な

計算の場合、RTF テンプレートでも処理できますが、ほとんどの複雑な計算式

フィールド、カスタム関数、および組込み関数は、PL/SQL ファンクションに変換

する必要があります。レポートのレイアウト設定に関連する計算式フィールドお

よびカスタム関数(または組込み関数)は、レイアウト設定関数カテゴリに分類

されます。これらは RTF テンプレートで処理できます。

サマリー・フィールド:

Crystal Reports のサマリー・フィールドを使用して、グループのフッターまたは

ヘッダー内にサマリー・データを作成します。サマリー・フィールドによって、

レポート・フィールドの異なるタイプの計算(合計、平均、カウントなど)を実

行できます。サマリー・フィールドを右クリックして「Edit Summary」を選択す

ると、計算の詳細を確認できます。

Oracle BI Publisher では、dataStructure セクションのグループ・レベルで集計関数

(SUM、AVG、COUNT、MIN、MAX)を定義できるデータ・テンプレートを使用

して、データ抽出時にサマリー・フィールドを処理できます。

また、ドロップダウン・リストから計算関数を選択して'On Grouping'チェック・ボッ

クスを選択すると、Oracle BI Publisher Template Builder のツールバーまたはメニュー・

バーのフィールドの挿入機能を使用して、サマリー・フィールドをOracle BI Publisher

の RTF テンプレートで処理できます。ドロップダウン・リストで使用できないサ

マリー関数の場合、RTF テンプレートに挿入されたプレースホルダの下のコード

を変更する必要があります。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

7

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 8: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

総合計フィールド:Crystal Reportsの総合計フィールドは、高度なバージョンのサ

マリー・フィールドです。異なるレベル(各レコード、フィールドの変更時、グ

ループの変更時、計算式ベース)の総合計を評価します。また、ユーザーは、異

なるレベル(各レコード、フィールドの変更時、グループの変更時、計算式ベー

ス)の総合計値を再設定できます。総合計フィールドをデータベース列または計

算式フィールド上に作成できます。

Oracle BI Publisher の総合計フィールドを処理するには、『Oracle Business Intelligence

Publisher ユーザーズ・ガイド』で、"ページ・レベルの計算"の"総合計"に記載され

ている概念を活用します。更新可能な変数を使用してください。グループの変更

時に再設定される総合計フィールドをサマリー・フィールドとして処理し、RTF

テンプレートのサマリー・フィールド用に変換できます。計算式フィールドに総

合計フィールドが作成される場合、PL/SQLファンクションを使用して計算式フィー

ルドを定義できます。PL/SQL ファンクションが SQL 問合せに含まれる場合、総

合計用に他の XML 要素のように処理できる XML 要素としてデータが返されます。

総合計フィールドの計算式フィールドを処理する別の方法は、XSL または Oracle

BI Publisher 構文を使用した計算式を RTF テンプレートに記述することです。

組込み関数と演算子:Crystal Reportsによって提供されるいくつかの組込み関数と

演算子があります。Oracle BI Publisherの同等の関数または演算子としてすでに存

在するものもありますが、同等の関数を検出できない場合もあります。データ計

算に関連する複雑な組込み関数を識別してPL/SQLファンクションに変換する必

要があります。Oracle BI Publisherのコード構文を使用して、RTFテンプレートで

簡単な組込み関数を処理できます。

カスタム関数:カスタム関数は、Crystal Reports Formula Workshop内の 3 つの場所

にあります。

Report Custom Functions

Repository Custom Functions

Built-in Functions の Additional Functions (Plug-in Functions)

Oracle BI Publisher で同等の関数を使用できるかどうかを最初に確認します。たと

えば、Crystal Reports でカスタム関数を記述している可能性がある日付、数値、通

貨などの形式は、Oracle BI Publisher で使用できます。関数が Oracle BI Publisher

にない場合、データ計算に関連する関数を PL/SQLファンクションに変換して SQL

問合せ文で呼び出す必要があります。

計算式フィールド:前述の計算式フィールドを評価して、データ計算カテゴリお

よびレイアウト設定計算式のカテゴリに分類する必要があります。データ計算式

カテゴリに分類されるフィールドは、Oracle BI Publisherのデータ・モデルの一部

として含まれる必要があります。PL/SQLファンクションを作成して、データベース・

レベルでこのような計算式を処理できます。PL/SQLファンクションをSQL問合せ

から呼び出すことができます。対応する計算データはXMLデータの一部です。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

8

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 9: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

計算式フィールドのカスタム関数(または組込み関数)と演算子をコードの再利

用に使用することは一般的です。PL/SQL ファンクションへの変換時に同じコード

の再利用アプローチを使用できます。

レイアウト設計に関連するサポート機能

の詳細は、Oracle BI Publisher 10.1.3.3.2のユーザー・ガイドを参照してください。

2. レイアウトの変換

2.1:空の RTF のオープン

レイアウト設計を開始するには、Microsoft Word で空のドキュメントを開きます。

注:空の RTF で開始すると簡単ですが、Crystal Reports の編集可能な RTF 出力で

開始して、Oracle BI Publisher の初期テンプレートとして使用できます。編集可能

な RTF 出力ファイルが書式設定機能を失うことなく、レポートに複雑なレイアウ

ト設定が含まれる場合、この手法が役立ちます。動的列レポートおよびクロス集

計レポートの場合、空の RTF の使用が最適です。

2.2:サンプル・データの取得

Template Builder for Word アドインから Oracle BI Publisher サーバーにログオンし

て、新しく作成したレポートを開き、テンプレート設計用の XML データをロー

ドします。

また、Oracle BI Publisher サーバーにログインし、レポート出力データを表示して、

XML データをエクスポートできます。Oracle BI Publisher の Template Builder から

この XML データをロードできます。

2.3:レイアウト・テンプレートの作成

高いレベルで Crystal Reports レイアウトを 3 つのカテゴリ(レイアウト設計、計

算、書式設定)に分類できます。

2.3.1:レイアウト設計

レイアウト設計には、レポート形式(表、フォームまたはフリー・フォーム)の

識別、データ要素の識別、階層、グループ化、ソート、フィルタリングが含まれ

ます。これらのコンテンツは、レポート・レイアウト設計のバックボーンとして

機能します。

Oracle BI Publisher でデータを編成するには、Template Builder のウィザードを選択

します。'Table Wizard'は、ほとんどの簡単なデータ編成を処理できます。Table/Form

ウィザードは、ネストされたグループを含む複雑な形式を処理できます。'Cross

Tab'ウィザードを使用すると、クロス集計レポートを作成できます。'chart'ツール

を使用すると、さまざまなタイプのグラフを挿入できます。Insert Field ダイアロ

グを使用すると、一度に 1 つのフィールドを簡単に挿入できます。複雑な形式を

作成する場合、ツールバーの挿入メニューの'Repeating Group'機能でこれを実行で

きます。

2.3.2:計算

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

9

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 10: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

計算では、組込み関数、サマリー・フィールド、式、計算式フィールド、カスタ

ム関数、条件付き表示ロジック、パラメータなどから取得されるすべての間接的

なデータ値を参照します。

Oracle BI Publisher で、同等の組込み関数が存在するかどうかを最初に確認します。

次に、ネイティブな Microsoft Word または RTF 書式設定機能としてレイアウト設

定を使用できるかどうかを確認できます。使用できる場合、同等の Microsoft Word

または RTF 書式設定機能を使用して、任意の書式設定を適用します。このような

関数が存在しない場合、テキスト・フォーム・フィールドのコードとして記述す

るか、Oracle BI Publisher 構文または XSL 構文を使用して、直接 RTF ページに記

述する必要があります。

サブテンプレートは、複雑な書式設定関数または再利用可能な書式設定関数の代

わりに使用できます。関数と同様に、パラメータをこのようなサブテンプレート

に渡すことができます。また、主要なレポートとサブテンプレート間で変数を共

有できます。これらのサブテンプレートは、条件ベースの書式設定に使用される

サブレポートの代わりに使用できます。

2.3.3:書式設定

書式設定は、データ要素、表のサイズ、表の境界線、表の背景、静的テキスト、イ

メージ、背景色、フォント・サイズ、フォントの色、フォント・スタイル、配置、

ヘッダーとフッターのコンテンツなどの視覚的な表示内容を示します。Oracle BI

Publisher では、RTF テンプレートの作成に Microsoft Word を活用するので、Microsoft

Word で使用できるすべての書式設定機能にアクセスできます。

2.4:レポートのプレビューおよびアップロード

RTF レイアウトを作成する場合、任意の出力形式による最終レポートの表示を常

にプレビューできます。Oracle BI Publisher メニューまたはツールバーの'Preview

Template'へ移動して、PDF、HTML、RTF、または Excel 形式でレポートを表示し

ます。レポートのプレビュー・バージョンを参照して、レポートのレイアウトと

書式設定がレプリケートされているかを確認します。レプリケートされていない

場合、レポートが任意の表示になるまで変更してプレビューします。

テンプレートが完了した後、Oracle BI Publisher メニューの'Publish Template As'へ

移動します。テンプレート名を入力し、次のプロンプトで「OK」をクリックして、

アップロードを完了します。

Crystal Reports 変換の例

EmployeeSalaryReport

ここでは、変換手順を示すために、基本機能の一部を含む非常に簡単なレポート

を使用します。出力結果から、レポート・データが Department と Manager でグルー

プ化されていることがわかります。合計給与は、Manager に属する従業員の年間

給与の合計です。これは各 Manager の最後のデータ行に表示されます。このレポー

トは、行の背景を交互に灰色で表示したバンド形式を使用します。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

10

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 11: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 1:Crystal Reports Developer のエクスポート・オプションを使用した PDF 形式のレポート

出力

段階的な変換を開始する前に、Crystal Reports のレポートと設計を理解することが

重要です。これには、Crystal Reports Developer のレポートを表示する必要があり

ます。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

11

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 12: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 2:Crystal Reports Developer の設計ビューで表示された EmployeeSalaryReport

レポートの分析をレポート・データ(接続およびデータ・モデル)とレポート・

レイアウトの 2 つのセクションに分類できます。

1. 接続およびデータ・モデルの分析

1.1:データソースの接続

Crystal Reports Developer で、'Database'メニューの'Log On or Off Server'へ移動して、

Data Explorer を開きます。

図 3:Data Explorer

このレポートに関連するデータベース接続を右クリックして、プロパティを選択

します。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

12

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 13: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 4:データベース接続プロパティ

データベース接続の詳細から、DSN 名に XDOPC2 を使用した ODBC 接続である

ことがわかります。したがって、ODBC Data Source Administrator を開いてこの DSN

名を検索する必要があります。

図 5:ODBC Data Source Administrator

「Configure」ボタンをクリックして、ODBC データソースの詳細を確認します。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

13

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 14: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 6:DSN 構成

この例のデータベースは、Microsoft SQL Server データベースの xdopc2.us.oracle.com

です。

1.2:SQL 問合せ

次に、'Show SQL Query'へ移動して、問合せを確認します。

図 7:Show SQL Query ダイアログ

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

14

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 15: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

Crystal からコピーされる問合せは、以下のとおりです。

SELECT "Employee"."ManagerID", "Department"."Name" as DepartmentName, "Employee"."EmployeeID", "Contact"."FirstName", "Contact"."LastName","Employee"."Title", "Employee"."Hiredate", "EmployeePayHistory"."Rate", "Contact_1"."FirstName" MgrFirstName, "Contact_1"."LastName" MgrLastName

FROM ((("AdventureWorks"."HumanResources"."EmployeePayHistory" "EmployeePayHistory" INNER JOIN (("AdventureWorks"."HumanResources"."Department" "Department" INNER JOIN "AdventureWorks"."HumanResources"."EmployeeDepartmentHis tory" "EmployeeDepartmentHistory" ON "Department"."DepartmentID"="EmployeeDepartmentHistory". "DepartmentID") INNER JOIN "AdventureWorks"."HumanResources"."Employee" "Employee" ON "EmployeeDepartmentHistory"."EmployeeID"="Employee"."Emp loyeeID") ON "EmployeePayHistory"."EmployeeID"="Employee"."EmployeeID ") INNER JOIN "AdventureWorks"."Person"."Contact" "Contact" ON "Employee"."ContactID"="Contact"."ContactID") INNER JOIN "AdventureWorks"."HumanResources"."Employee" "Employee_1" ON "Employee"."ManagerID"="Employee_1"."EmployeeID") INNER JOIN "AdventureWorks"."Person"."Contact" "Contact_1" ON "Employee_1"."ContactID"="Contact_1"."ContactID"

where "EmployeePayHistory"."ModifiedDate" = (select max("EmployeePayHistory"."ModifiedDate") from "EmployeePayHistory" where "EmployeePayHistory"."EmployeeID"="Employee"."EmployeeID ")

ORDER BY "Department"."Name", "Employee"."ManagerID", "Employee"."EmployeeID"

1.3:パラメータ

Crystal Reports Developer で、Field Explorer のパラメータを確認します。このレポー

トに定義されている 1 つのパラメータ(Department)があります。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

15

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 16: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 8:このレポートのパラメータを表示する Field Explorer ビュー

パラメータを右クリックして、パラメータの詳細を確認します。

図 9:Department パラメータの定義

次に、Record Selection Formula Editor を参照して、パラメータをレポートに適用す

る方法を確認します。これを表示するには、「Report」メニューをクリックし、

「Selection Formula」に続き「Record Selection」を選択します。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

16

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 17: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 10:Record Selection Formula Editor

Department パラメータでは、値リストから選択する値の 1 つである'…All'値を確認

します。Crystal Reports で、SQL 問合せの UNION を使用して、'…All'を追加でき

ます。次のように、これが DeptPrompt に定義されます。

図 11:DeptPrompt を表示した Database Expert

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

17

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 18: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 12:'…All'を値リストに追加する問合せを示す View Command

1.4:サマリー・フィールド、総合計フィールド、組込み関数、カスタム

関数、および計算式フィールド

Crystal Reports Developer で、Formula Workshop のレポートで使用されるすべての

計算式を検索できます。このサンプル・レポートには、AnnualSalary、EmpName、

Manager の 3 つの計算式フィールドがあります(図 8 を参照)。デモ用に簡単な

計算式の定義を使用しています。

EmpName および Manager の計算式は、Employee と Manager の姓と名をそれぞれ

連結しただけです。AnnualSalary 計算式フィールドは、各従業員の請求料率と雇

用期間による簡単な計算です。

図 13:AnnualSalary 計算式フィールドの定義

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

18

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 19: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

接続およびデータ・モデルの変換

1.1:データソースの接続の変換

Oracle BI Publisher で、JDBC データソースを追加します。Admin タブで JDBC デー

タソース・タイプを選択し、新しいデータソースを追加します。

Data Source Name: sqlserver Connection String: JDBC:microsoft:sqlserver://xdopc2.us.oracle.com:1433 Username : userid Password : pwd Database Driver Class: com.microsoft.jdbc.sqlserver.SQLServerDriver

注:Oracle BI PublisherとMicrosoft SQL Server 2000 を接続する場合、次の 3 つのjar

ファイルがWEB-INF¥libフォルダに必要になります。

msbase.jar mssqlserver.jar msutil.jar

Microsoft SQL Server 2005 に接続するには、WEB-INF¥libフォルダにsqljdbc.jarファ

イルが必要になります。データベース・ドライバ・クラスは、以下のとおりです。

com.microsoft.sqlserver.jdbc.SQLServerDriver

上記のすべての jar ファイルは、SQL Server 配布メディアから取得できます。

Microsoft.com からダウンロードすることも可能です。

図 14:Oracle BI Publisher での SQL Server への JDBC 接続の定義

1.2:データ・モデルへの SQL の変換

Oracle BI Publisher で、新しいレポートを作成し、レポート名の「Edit」をクリッ

クして Report Editor ページを表示します。'query'などの名前とともに Data Model

セクションに新しい Data Set を作成します。Data Set の Type で「SQL Query」を、

Data Source Reference で「sqlserver」を選択します。Crystal Reports Developer の'Show

SQL Query'ダイアログから SQL をコピーし、Data Set の SQL Query ウィンドウに

貼り付けてレポートを保存します。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

19

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 20: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 15:Oracle BI Publisher でのデータ・モデルの定義

Report Editor ページの「View」リンクをクリックして、SQL 問合せからデータが

生成されていることを確認します。この時点で使用できる出力形式は Data のみ

です。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

20

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 21: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 16:XML 形式のデータの確認

1.3:パラメータの変換

最初に値リストを作成します。Report Editor 左側のナビゲーションの「List of

Values」を選択し、ツリーの上部の「New」ボタンをクリックして新しい値リスト

を作成します。

値リストの名前(たとえば、deptLOV)を入力し、「sqlserver」データソースを選

択して、値を返す SQL 問合せを入力します。この問合せは以下のとおりです。

Select distinct “Department”.”Name” from “Department” order by “Department”.”Name”

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

21

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 22: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 17:Department Name の値リストの定義

Report Editor の問合せを保存します。

次に、'department'という名前を使用したパラメータ定義を作成して、'deptLOV'値

リストに関連付けます。

Report Editor の左パネルの「Parameters」を選択し、レポート・ツリーの上の「New」

をクリックしてパラメータを作成します。

パラメータ定義で、Identifier に'Department'、Data Type に「String」、Default Value

に'*'、Parameter Type に「Menu」を指定します。これによって、作成した deptLOV

値リストが表示されます。ドロップダウン・リストから「deptLOV」を選択し、'Can

select all'オプションと'NULL Value Passed'オプションのチェック・ボックスを選択

します。これによって、パラメータに'All'が渡される場合に NULL 値を渡す問合

せが構成されます。

図 18:Department パラメータの定義

「Save」をクリックして、このパラメータ設定を保存します。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

22

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 23: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

次に、パラメータをデータ・モデルに定義した SQL 問合せに関連付ける必要があ

ります。SQL 問合せで、パラメータとして渡されるこの部門のデータだけを取得

する必要があります。次の条件が WHERE 句に追加されます。

and "Department"."Name" = isNull(:department,"Department"."Name")

以下の変更された SQL を確認します。

SELECT "Employee"."ManagerID", "Department"."Name" as DepartmentName, "Employee"."EmployeeID", "Contact"."FirstName", "Contact"."LastName","Employee"."Title", "Employee"."Hiredate", "EmployeePayHistory"."Rate", "Contact_1"."FirstName" MgrFirstName, "Contact_1"."LastName" MgrLastName FROM ((("AdventureWorks"."HumanResources"."EmployeePayHistory" "EmployeePayHistory" INNER JOIN (("AdventureWorks"."HumanResources"."Department" "Department" INNER JOIN "AdventureWorks"."HumanResources"."EmployeeDepartmentHis tory" "EmployeeDepartmentHistory" ON "Department"."DepartmentID"="EmployeeDepartmentHistory". "DepartmentID") INNER JOIN "AdventureWorks"."HumanResources"."Employee" "Employee" ON "EmployeeDepartmentHistory"."EmployeeID"="Employee"."Emp loyeeID") ON "EmployeePayHistory"."EmployeeID"="Employee"."EmployeeID ") INNER JOIN "AdventureWorks"."Person"."Contact" "Contact" ON "Employee"."ContactID"="Contact"."ContactID") INNER JOIN "AdventureWorks"."HumanResources"."Employee" "Employee_1" ON "Employee"."ManagerID"="Employee_1"."EmployeeID") INNER JOIN "AdventureWorks"."Person"."Contact" "Contact_1" ON "Employee_1"."ContactID"="Contact_1"."ContactID" where "EmployeePayHistory"."ModifiedDate" = (select max("EmployeePayHistory"."ModifiedDate") from "EmployeePayHistory" where "EmployeePayHistory"."EmployeeID"="Employee"."EmployeeID ") and "Department"."Name" = isNull(:department,"Department"."Name") ORDER BY "Department"."Name", "Employee"."ManagerID", "Employee"."EmployeeID"

ここでの IsNull 関数は、'All'の処理に使用されています。つまり、ユーザーが値リ

ストから'All'を選択すると、Oracle BI Publisher は問合せに NULL を渡し、NULL

が"Department"."Name"の値に置き換えられます。これによって、Department Name

の条件がなくなります。

Report Editor ページの問合せを保存します。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

23

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 24: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

パラメータと値リストが正しく設定されていることをテストするには、データを

表示して XML 出力を確認します。

図 19:パラメータとして値リストを使用したデータ

ドロップダウン・リストがレポート・ビュー画面に表示されます。ドロップダウ

ン・リストから部門を選択すると、その部門のデータが表示されます。

1.4:サマリー・フィールド、総合計フィールド、組込み関数、カスタム

関数、および計算式フィールドの変換

次のように、Crystal Reports Developer で定義される'AnnualSalary'計算式フィール

ドを SQL Server データベースの PL/SQL ファンクションに変換できます。

CREATE FUNCTION f_AnnualSalary ( @Val1 float, @Val2 varchar(50)) RETURNS float AS BEGIN declare @sal float if datepart(yyyy,@Val2) < 2000 (select @sal= @Val1 * 8 * 300 + @Val1 * 20) else if datepart(yyyy,@Val2) >= 2000 and datepart(yyyy,@Val2) < 2005 (select @sal=@Val1 * 8 * 300 + @Val1 * 15) else (select @sal=@Val1 * 8 * 300 + @Val1 * 10)

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

24

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 25: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

RETURN (@sal) END go

注:上記の関数定義は、MS SQL Server構文に準拠します。適宜構文を変更して、

他のデータベースの要件を満たすことができます。

データベースの関数をコンパイルした後、次のように SQL 問合せから呼び出すこ

とができます。

SELECT "Employee"."ManagerID", "Department"."Name" as DepartmentName, "Employee"."EmployeeID", "Contact"."FirstName" + ' ' + "Contact"."LastName" EmpName, "Employee"."Title", "Employee"."Hiredate" as EmpHireDate, "EmployeePayHistory"."Rate" Rate, "Contact_1"."FirstName" + ' ' + "Contact_1"."LastName" Manager, "AdventureWorks"."dbo".f_annualsalary("EmployeePayHistory"."Rate", "Employee"."Hiredate") as AnnualSalary FROM ((("AdventureWorks"."HumanResources"."EmployeePayHistory" "EmployeePayHistory" INNER JOIN (("AdventureWorks"."HumanResources"."Department" "Department" INNER JOIN "AdventureWorks"."HumanResources"."EmployeeDepartmentHis tory" "EmployeeDepartmentHistory" ON "Department"."DepartmentID"="EmployeeDepartmentHistory". "DepartmentID") INNER JOIN "AdventureWorks"."HumanResources"."Employee" "Employee" ON "EmployeeDepartmentHistory"."EmployeeID"="Employee"."Emp loyeeID") ON "EmployeePayHistory"."EmployeeID"="Employee"."EmployeeID ") INNER JOIN "AdventureWorks"."Person"."Contact" "Contact" ON "Employee"."ContactID"="Contact"."ContactID") INNER JOIN "AdventureWorks"."HumanResources"."Employee" "Employee_1" ON "Employee"."ManagerID"="Employee_1"."EmployeeID") INNER JOIN "AdventureWorks"."Person"."Contact" "Contact_1" ON "Employee_1"."ContactID"="Contact_1"."ContactID" where "EmployeePayHistory"."ModifiedDate" = (select max("EmployeePayHistory"."ModifiedDate") from "EmployeePayHistory" where "EmployeePayHistory"."EmployeeID"="Employee"."EmployeeID ") and "Department"."Name" = IsNull(:department, "Department"."Name") ORDER BY "Department"."Name", "Employee"."ManagerID", "Employee"."EmployeeID"

上記の太字のテキストは、Crystal Reports の計算式関数を処理しています。

これで、Oracle BI Publisherのレポートに必要なすべてのデータ要素を確認できます。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

25

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 26: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 20:XML 形式の最終データ

2. レポート・レイアウトの分析

2.3.1:レイアウト設計

このサンプル・レポートのデータ要素は、SQL 問合せの列名です。レポート出力

は、グループ化とソートを示します。グループ化を確認するには、Crystal Reports

Developer の「Group Expert」を開きます。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

26

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 27: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 21:Group Expert

このレポートには、2 つのレベルのグループ(Department Name と計算式フィール

ドの Manager)があります。'Group By'を選択して「Option」ボタンをクリックし、

グループの詳細を確認します。

図 22:DepartmentName でグループ化されたグループ・オプション

DeparmentName は、昇順でソートされます。「Options」タブを選択して、他の詳

細を表示します。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

27

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 28: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 23:Options タブのチェックのないプロパティ

上の図では、オプションが選択されていません。同様に、ネストされている'Manager'

グループの詳細を確認します。

図 24:Manager でグループ化されたグループ・オプション

このグループ・データは、'Manager'の昇順でソートされます。「Options」タブを

クリックして、グループ化オプションを確認します。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

28

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 29: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 25:チェックされた'Keep Group Together'プロパティ

上の図の'Keep Group Together'構成によって、Manager のデータがページ間で分割

されないようになります。

2.3.2:計算

書式設定用にレポートで使用される計算式を確認するには、Formula Workshop を

開きます。レポート・レイアウトで使用されるすべての計算式は、Formula Workshop

の'Formatting Formulas'セクションに表示されます。

図 26:行の条件付き書式設定を表示した Formula Workshop

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

29

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 30: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

上の図は、背景色を Detail セクションに追加する計算式を示しています。この計

算式によって、データ行の背景色が交互に銀色となります。

Formula Workshop で他に注意する個所は、AnnualSalary 計算式フィールドの合計

を示す'Sum of @AnnualSalary'という名前の Group Footer #2 のサマリー・フィール

ドです。サマリー・フィールドの詳細を確認するには、カーソルをレポート設計

のサマリー・フィールドの上に置いて右クリックします。次のように、 'Edit

Summary'オプションを確認できます。

図 27:Crystal Reports Developer のサマリー・フィールドのサマリーの編集

Edit Summary ダイアログで、サマリーに使用されるフィールドと関数を確認でき

ます。このレポートでは、'AnnualSalary'計算式フィールドに Sum 関数が適用され

ます。

図 28:サマリー・フィールドに使用されるサマリー機能

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

30

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 31: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

2.3:書式設定

Crystal Reports に適用されるすべての視覚的な書式設定に注意する必要がありま

す。このサンプル・レポートでは、バンド形式と背景色を確認できます。表の境

界線と列ヘッダーの背景色も確認できます。

これで、このレポートの分析が完了しました。次に、このレポートを Oracle BI Publisher

に変換します。

レポート・レイアウトの変換

2.1:空の RTF のオープン

空の RTF ファイルを開きます。

2.2:サンプル・データの取得

テンプレート設計用のXMLデータをロードするため、Oracle BI PublisherのTemplate

BuilderメニューからOracle BI Publisherサーバー(たとえば、http://localhost:9704/

xmlpserver)にログオンします。

図 29:レポート・サーバーURL を使用した Oracle BI Publisher Enterprise Server へのログイン

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

31

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 32: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

これによって、異なるフォルダに作成されたすべてのレポートを確認できる'Open

Template'ダイアログが開きます。

図 30:Open Template ダイアログでのレポートの参照

適切なフォルダに移動してレポートを選択し、「Open Report」をクリックします。

データ・フィールド、表、およびグラフをレイアウトに配置できるように、デー

タとデータ情報が Template Builder にロードされます。

2.3:レイアウト・テンプレートの作成

2.3.1:設計レイアウトの変換

Microsoft Word ドキュメントで、Template Builder ツールバーの「Insert」メニュー

から「Table Wizard」を選択します。次のように、Table Wizard ダイアログが開き

ます。

図 31:Table Wizard - レポート形式の選択

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

32

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 33: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

このレポートでは、レポート形式に「Table」を選択します。

図 32:Table Wizard - グループ化フィールドの選択

この画面では、ドロップダウン・リストからデータセットのグループ化レベルを

選択できます。このレポートのデータに階層が定義されていないので、デフォル

トのグループ化レベルの「ROWSET/ROW」を選択します。「Next」ボタンをクリッ

クします。

図 33:Table Wizard - フィールドの選択

この画面で、レポートに表示されるフィールドを選択できます。また、上から下

にフィールドの順序を設定できます。このウィザードによってレンダリングされ

ると、これらのフィールドの順序は左から右になります。次の画面へ進みます。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

33

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 34: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 34:Table Wizard - グループ化

この画面では、Group By フィールドと順序を設定できます。ここでは、'DepartmentName'

グループ内に'Manager'グループがネストされています。

図 35:Table Wizard - ソート

ここでのソートは表データ用なので、Sort By に「Employeeid」を選択します。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

34

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 35: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 36:Table Wizard - ラベル・フィールドの編集

ラベルのデフォルトはフィールド名です。この画面でラベルを編集できます。こ

の画面で、初期テンプレートを作成できます。「Finish」をクリックして、次のテ

ンプレート設計を取得します。

図 37:表ウィザードで作成された初期設計

ここでは、すべてのデータ・プレースホルダが灰色でハイライト表示されています。

2.3.2:計算の変換

このレポートには、レイアウト設定層の 2 つの計算(バンド形式の条件とサマ

リー・フィールド)があります。書式設定する必要がある日付および給与フィー

ルドもあります。

サマリー・フィールドをレポートに追加するには、次のように別の行を表に挿入

して、Template Builder ツールバーのフィールドの挿入機能を使用します。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

35

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 36: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 38:合計フィールドの新しい行

図 39:AnnualSalary フィールドの合計の挿入

サマリー・フィールドを挿入するには、ダイアログの「AnnualSalary」フィールド

を選択し、ドロップダウン・リストから「sum」計算関数を選択して、'On Grouping'

チェック・ボックスを選択します。「Insert」ボタンをクリックします。

次に、'AnnualSalary'と'sum AnnualSalary'フィールドの書式設定を行い、Crystal Reports

の給与データ形式と一致させます。「AnnualSalary」テキスト・フォーム・フィー

ルドをダブルクリックして、'BI Publisher Properties'ダイアログを開きます。書式設

定のタイプに「Number」、形式に「$#,##0.00」を選択します。この形式を手動で

編集して新しい形式を指定できます。このテキスト・フォーム・フィールドのラ

ベル名である'Text to display'ラベルを追加します。'sum AnnualSalary'テキスト・フォー

ム・フィールドにも同じ手順を実行します。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

36

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 37: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 40:AnnualSalary フィールドの書式設定

同様に、'雇用日'を'MM/dd/yyyy'日付形式に設定できます。

形式フィールドは編集可能なので、手動で形式を入力できます。

図 41:雇用日の書式設定

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

37

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 38: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 42:中間のテンプレート・フォーマット

2.3.3:書式設定の変換

次に、Microsoft Word の表のネイティブ機能である'行の途中で改ページする'オプ

ションを使用して、'Keep Group Together'を処理できます。単一の行と列で構成さ

れる表を挿入し、右クリックして表のプロパティを編集します。

図 43:統合処理のための新しい表の挿入

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

38

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 39: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 44:データを統合処理するオプションを設定するための表プロパティ

'行の途中で改ページする'オプションの選択を解除します。これによって、行の

データが統合処理され、ページ間で分割されなくなります。

このレポートでは、この表の行内の'group by Manager'のコンテンツを含めること

ができます。このため、このグループ・データは統合処理されます。

図 45:表内の従業員データとマネージャの挿入

次に、Crystal Reports 出力と一致するように、フォント・サイズ、フォント・スタ

イル、配置を調整します。ピクセル・レベルのレポートの手順の1つに、表を使

用したデータの正確な配置があります。新しい表を追加して、Manager と Department

のラベルとデータを含めることができます。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

39

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 40: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 46:Department および Manager セル用に削除されたセルの余白とフィールドの調整

セルの余白を調整して、Department および Manager ラベルを配置できます。また、

セルの余白を外側の表から削除して、従業員表に上記のラベルを配置できます。

EmployeeID および AnnualSalary ラベルとデータを右側に配置できます。

図 47:表の境界線の非表示および従業員表の見出しの背景色の追加

表の境界線を非表示にして、従業員表の見出しに背景色を追加します。RGB の色

の組合せと一致させる場合、ドキュメントから RGB 値を読み取ることができる

ツールを使用できます。

図 48:Template Builder の条件付き書式設定

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

40

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 41: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

次に、for-each プレースホルダの後の EmployeeID 列にカーソルを置いて、Template

Builder ツールバーの「Insert」メニューから「Conditional Formatting」を選択しま

す。次のようなダイアログが表示されます。

図 49:行の条件付き書式設定

このダイアログでは、ドロップダウン・リストで使用できるデータ要素の条件を

適用できます。ここでは、上の図のようにデータ・フィールドに手動で入力でき

るカスタム条件を適用します。

この条件を表の行全体に適用するので、'Apply to Entire Table Row'チェック・ボッ

クスを選択します。次に、「Format」ボタンを選択して、条件が満たされる場合

に適用する形式を決定します。

ここでは、次のように表の行の背景色を灰色に設定します。

図 50:背景色の選択

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

41

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 42: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 51:レポート本体のテンプレート設計

この時点でのすべての変更を適用したレポート本体の設計が表示されます。

次に、ヘッダーとフッターのコンテンツを含める必要があります。すべての書式

設定をテンプレートへ適用した後、最終テンプレートは次のようになります。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

42

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 43: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 52:最終テンプレート設計

各テキスト・フォーム・フィールドのプレースホルダに関連するコードのリスト

は、以下のとおりです。

テキスト・フォーム・

フィールド

コード

group ROW by DepartmentName

<?for-each-group:ROW;./DepartmentName?>

<?sort:./DepartmentName;

'ascending';data-type='text'?>

DepartmentName <?DepartmentName?>

group by Manager <?for-each-group:current-

group();./Manager?><?sort:current-

group()/Manager;'ascending';data-

type='text'?>

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

43

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 44: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

Manager <?Manager?>

F <?for-each:current-

group()?><?sort:EmployeeID;'ascending';data-

type='number'?>

C <?if@row:position() mod 2=

0?><?attribute@incontext:background-

color;'Silver'?><?end if?>

EmpID <?EmployeeID?>

EmpName <?EmpName?>

01/01/2000 <?HireDate?>

Title <?Title?>

$9,990.00 <?AnnualSalary?>

E <?end for-each?>

$9,990.00 <?sum(current-group()/AnnualSalary)?>

end by Manager <?end for-each-group?>

end ROW by DepartmentName

<?end for-each-group?>

2.4:レポートのプレビューおよびアップロード

最終レポートのプレビューを参照して、レイアウトと書式設定が正しいことを確

認します。'Oracle BI Publisher'メニューまたはツールバーの「Preview Template」へ

移動して、PDF、HTML、RTF、Excel または PowerPoint 形式でレポートを表示し

ます。'Oracle BI Publisher'メニューの「Upload Template As」を選択して、Oracle BI

Publisher Enterprise Server にこのテンプレートを公開します。テンプレート名を入

力し、次のプロンプトで「OK」をクリックして、アップロードを完了します。

Oracle BI Publisher Enterprise Server にログオンし、「My Folders」の「Employee

SalaryReport」に移動して、PDF、HTML、RTF、Excel または PowerPoint 形式でレ

ポートを表示できることを確認します。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

44

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 45: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

図 53:PDF 形式の Oracle BI Publisher のレポート出力

上の図は、Crystal Reports PDF 出力(図 1)と一致する PDF 出力を示しています。

これで、Crystal Reports のサンプルを Oracle BI Publisher レポートに変換する作業

が完了しました。

結論

Template Builder には、設計時に使用できる多くの機能があります。また、Template

Builder で発生するエラーに対してテンプレート設計を検証できます。データ抽出

や含まれる書式設定の複雑さによって、変換手順はレポートごとに異なります。

ただし、段階的なアプローチは、ほとんどのレポートに適用されます。

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換

45

Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。

Page 46: Business Objects のCrystal Reports から Oracle BI …...1. 接続およびデータ・モデルの変換 Crystal Reports は、さまざまなタイプのデータソースをサポートします。次の手順

Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換 2008 年 2 月 著者:Pradeep Kumar Sharma 共著者:Mike Donohue Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 オラクル社は本文書に関するいかなる法的責任も明確に否認し、本文書に

よって直接的または間接的に確立される契約義務はないものとします。本文

書はオラクル社の書面による許可を前もって得ることなく、いかなる目的の

ためにも、電子または印刷を含むいかなる形式や手段によっても再作成また

は送信することはできません。Oracle は米国 Oracle Corporation およびその

子会社、関連会社の登録商標です。その他の名称はそれぞれの会社の商標です。 海外からのお問合せ窓口: 電話:+1.650.506.7000 ファクシミリ:+1.650.506.7200 www.oracle.com Copyright © 2007, Oracle. All rights reserved. 本文書は情報提供のみを目的として提供されており、ここに記載される内容

は予告なく変更されることがあります。 本文書は一切間違いがないことを保証するものではなく、さらに、口述によ

る明示または法律による黙示を問わず、特定の目的に対する商品性もしくは

適合性についての黙示的な保証を含み、いかなる他の保証や条件も提供する

ものではありません。