Business ObjectsのCrystal ReportsからOracle BI Publisherへの
by user
Comments
Transcript
Business ObjectsのCrystal ReportsからOracle BI Publisherへの
Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換 Oracle ホワイト・ペーパー 2008 年 2 月 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」の翻訳版です。 はじめに 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」の翻訳版です。 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」の翻訳版です。 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」の翻訳版です。 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」の翻訳版です。 するので、特定の 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」の翻訳版です。 総合計フィールド: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」の翻訳版です。 計算式フィールドのカスタム関数(または組込み関数)と演算子をコードの再利 用に使用することは一般的です。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」の翻訳版です。 計算では、組込み関数、サマリー・フィールド、式、計算式フィールド、カスタ ム関数、条件付き表示ロジック、パラメータなどから取得されるすべての間接的 なデータ値を参照します。 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」の翻訳版です。 図 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」の翻訳版です。 図 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」の翻訳版です。 図 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」の翻訳版です。 図 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」の翻訳版です。 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」の翻訳版です。 図 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」の翻訳版です。 図 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」の翻訳版です。 図 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」の翻訳版です。 接続およびデータ・モデルの変換 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」の翻訳版です。 図 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」の翻訳版です。 図 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」の翻訳版です。 図 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」の翻訳版です。 次に、パラメータをデータ・モデルに定義した 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」の翻訳版です。 パラメータと値リストが正しく設定されていることをテストするには、データを 表示して 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」の翻訳版です。 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」の翻訳版です。 図 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」の翻訳版です。 図 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」の翻訳版です。 図 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」の翻訳版です。 図 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」の翻訳版です。 上の図は、背景色を 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」の翻訳版です。 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」の翻訳版です。 これによって、異なるフォルダに作成されたすべてのレポートを確認できる'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」の翻訳版です。 このレポートでは、レポート形式に「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」の翻訳版です。 図 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」の翻訳版です。 図 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」の翻訳版です。 図 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」の翻訳版です。 図 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」の翻訳版です。 図 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」の翻訳版です。 図 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」の翻訳版です。 図 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」の翻訳版です。 次に、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」の翻訳版です。 図 51:レポート本体のテンプレート設計 この時点でのすべての変更を適用したレポート本体の設計が表示されます。 次に、ヘッダーとフッターのコンテンツを含める必要があります。すべての書式 設定をテンプレートへ適用した後、最終テンプレートは次のようになります。 Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換 42 Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。 図 52:最終テンプレート設計 各テキスト・フォーム・フィールドのプレースホルダに関連するコードのリスト は、以下のとおりです。 テキスト・フォーム・ コード フィールド group ROW by <?for-each-group:ROW;./DepartmentName?> DepartmentName <?sort:./DepartmentName; 'ascending';data-type='text'?> DepartmentName <?DepartmentName?> group by Manager <?for-each-group:currentgroup();./Manager?><?sort:currentgroup()/Manager;'ascending';datatype='text'?> Business Objects の Crystal Reports から Oracle BI Publisher へのレポートの変換 43 Oracle Corporation 発行「Converting reports from Business Objects Crystal Reports to Oracle BI Publisher」の翻訳版です。 Manager <?Manager?> F <?for-each:currentgroup()?><?sort:EmployeeID;'ascending';datatype='number'?> C <?if@row:position() mod 2= 0?><?attribute@incontext:backgroundcolor;'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 <?end for-each-group?> DepartmentName 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」の翻訳版です。 図 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」の翻訳版です。 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. 本文書は情報提供のみを目的として提供されており、ここに記載される内容 は予告なく変更されることがあります。 本文書は一切間違いがないことを保証するものではなく、さらに、口述によ る明示または法律による黙示を問わず、特定の目的に対する商品性もしくは 適合性についての黙示的な保証を含み、いかなる他の保証や条件も提供する ものではありません。