Oracle® Fusion Middleware Oracle Business Intelligence Publisherレポート・デザイナーズ・ガイド 12c (12.2.1.3.0) E90114-02 |
|
![]() 前へ |
![]() 次 |
この章では、Template Builder for Excelを使用して、Microsoft ExcelでBI Publisher用のレポート・テンプレートを作成する方法について説明します。
この章の内容は次のとおりです。
Excelテンプレートとは、Excelスプレッドシートでエンタープライズ・レポート・データを書式設定するために、Microsoft Excel内で設計されるレポート・レイアウトです。
Excelテンプレートは、データをワークシートにマップし、データがExcelブックにどのように出力されるかを制御する追加の処理を実行するための特殊機能セットを提供します。
この概要の項目は次のとおりです。
Excelテンプレートを使用すると、様々な方法でデータをフォーマットできます。
Excel出力におけるデータの書式を定義します。
複数のシートで階層データを分離し、シートに動的に名前を付けます。
マスター/ディテール関係を持つデータのシートを作成します。
データにネイティブのXSL機能を使用して表示前に操作します。
Excelのネイティブ機能を使用します。
Excelテンプレートには、次のような制限事項があります。
データを複数のシートに分割するレポートでは、イメージはサポートされません。テンプレート・シートにイメージが含まれる場合、データが複数のシートに分割されると、イメージは最初のシートにのみ表示されます。
BI Publisherでは、Microsoft Excelのアドインを提供し、フィールドおよび繰返しグループの挿入を支援します。より複雑な設計をするには、手動によるコーディングが必要です。一部の機能では、XSLおよびXSL変換(XSLT)仕様の使用が必要です。
Excelテンプレートを設計するには、特定の前提条件を満たしている必要があります。
Microsoft Excel 2003以降をインストールしておく必要があります。テンプレート・ファイルは、Excel 97-2003ブック・バイナリ形式(*.xls)で保存する必要があります。
注意:
Excel 2003以降のバージョンを使用してテンプレートを作成し、Excel 97-2003として保存する場合は、Excel 97-2003でサポートされていない新しいバージョンの機能は使用しないようにしてください。たとえば、Excel 2003ではセルごとに3つの条件付き書式ルールしか許可されませんが、Excel 2007ではより多く許可されます。適用した条件付き書式ルールが4つ以上の場合は、3つのみが適用されます。また、Excel 2003では提供されていないカラー・サポートがExcel 2007では提供されています。
一部の拡張機能を使用するには、XSLの知識が必要です。
データ・モデルは、使用可能なサンプル・データを使用してBI Publisherに作成する必要があります。
BI Publisherにはダウンロード可能なExcel用のアドインが用意されており、次の機能を提供します。
BI Publisherサーバーに直接接続し、サンプル・データのロードとテンプレートのアップロードおよびダウンロードを行います
テンプレートにデータ・フィールド・マッピングを挿入します。
テンプレートに繰返しグループ・マッピングを挿入します。
すべての挿入済コードを確認し、マッピングを編集または削除するためのフィールド・ブラウザを提供します。
接続モード時にサンプル・データまたはライブ・データを使用してテンプレートをプレビューします。
BI Publisher Desktopツールをインストールすると、Template Builder for Excelが自動的にインストールされます。
これらのツールは、次の手順で、Oracle Business Intelligence PublisherまたはOracle Business Intelligence Enterprise Editionのホーム・ページからダウンロードできます。
「はじめに」リージョンで、「BI Publisherツールのダウンロード」をクリックし、Microsoft Officeのバージョンに適したBI Publisher Desktopオプション(32ビットOfficeまたは64ビットOffice)を選択します。
注意:
Excel Template Builderは、Analyzer for Excel (非推奨)との互換性はありません。Analyzer for Excelを以前のバージョンでインストールしている場合は、BI Publisherツールのインストーラによりその存在が検出され、インストールが停止されます。BI Publisher Desktopをインストールする前にAnalyzer for Excelを削除する必要があります。Excel Template Builderには、Analyzer for ExcelテンプレートをExcelテンプレート書式にインポートする機能が含まれています。「Excelアナライザ・テンプレートのインポート」を参照してください。Excelテンプレートの設計時には、Excel Template Builderを使用して、フィールドおよび繰返しグループをテンプレートに挿入します。
Template Builderでフィールドまたは繰返しグループを挿入する場合は、データとスプレッドシート間にマッピングが作成され、そのマッピングがXDO_METADATAシートという名前の非表示のシートに書き込まれます。フィールドまたは繰返しグループの初回挿入時には、Template Builderにより、非表示のXDO_METADATAシートが作成されます。
XDO_METADATAシートを表示または更新するには、シートの非表示を解除します。計算またはより高度な機能を追加するには、Template Builderにより作成された名前付きマッピングを使用して、XDO_METADATAシートにXSL機能を直接入力します。テンプレート・データ・マッピングの詳細は、「Excelテンプレートの概念の理解」を参照してください。
Excel Template Builderは、単純なマッピングの挿入の自動化、プレビュー機能の提供のほか、ExcelセッションからBI Publisherサーバーへの直接接続の有効化を行うことで、テンプレートの設計を支援します。
次の図は、Template Builderのインストール時に表示される「BI Publisher」タブを示しています。
Template Builderは、接続モードまたは切断モードで使用できます。接続モードでは、ExcelからBI Publisherサーバーにログインします。この接続により、BI Publisherカタログの閲覧と、既存のレポートまたはデータ・モデルからのサンプル・データのロードができます。テンプレートが完了している場合は、それをBI Publisherカタログ内のレポート定義に直接アップロードできます。切断モードでは、データ・モデルからローカル・クライアントにサンプル・データファイルをダウンロードする必要があります。
この項には、Template Builder for Excelの使用に関する次のトピックが含まれています。
接続モードでは、BI Publisherサーバーと直接やりとりができます。
接続モードでテンプレートを作成または編集するためのプロセス・フローは次のとおりです。
次の項では、接続モードでの作業時におけるTemplate Builder機能の詳細について説明します。
Excel Template Builderでは、自身のデスクトップのExcelセッションからBI Publisherサーバーへの直接接続が有効化されます。
BI Publisherに直接ログインすることで、カタログを閲覧して、Excelテンプレートを追加するレポートを選択するか、または作成済のレポートがない場合は、データ・モデルを選択して、Excelセッションでカタログにレポートを作成できます。
BI Publisherサーバーにログオンするには:
ログイン後に、「オンライン」グループ内の次のコマンドが有効化されます。
ログオフ: BI Publisherサーバーへの接続を終了します。
開く: BI Publisherカタログとのやりとりを可能にします。「Template BuilderからのBI Publisherカタログへのアクセス」を参照してください。
レポートの表示: サーバー上でデータ・モデルを実行し、テンプレート内のビューにライブ結果を戻します。データ・モデルにパラメータが含まれる場合は、値の入力が求められます。
テンプレートのアップロード/名前を付けてテンプレートをアップロード: テンプレートをBI Publisherカタログにアップロードします。「Template Builderからのテンプレートのアップロード」を参照してください。
「開く」オンライン・コマンドは、BI Publisherカタログとのやりとりを可能にします。
「開く」コマンドは、「テンプレートを開く」ダイアログを起動し、BI Publisherカタログへのアクセスを有効にします。
カタログ・フォルダを移動して、レポート、データ・モデルまたは既存のレイアウト・テンプレートを検索します。このダイアログでは、次のいずれかのアクションを開始できます。
既存のExcelテンプレートを変更します。
「レポート」リージョンでレポートを選択すると、既存のExcelテンプレートまたはExcelアナライザ・テンプレート (非推奨)が下部の「レイアウト・テンプレート」リージョンに表示されます。既存のテンプレートを変更するには、テンプレート名を選択して「レイアウト・テンプレートを開く」をクリックします。Template Builderにより、レポートのデータ・モデルからサンプル・データがロードされ、既存のテンプレートがExcelで開きます。
既存のレポートの新しいテンプレートを作成します。
「レポート」リージョンでレポート名を選択して、「レポートを開く」をクリックします。Template Builderにより、そのレポートのデータ・モデルのサンプル・データがロードされます。
データ・モデルを選択して新規レポートを作成します。
カタログからデータ・モデルを選択すると、「レポートの作成」ボタンが有効化されます。「レポートの作成」をクリックすると、レポート名を入力し、カタログ内での新規レポートの保存場所を選択するように求められます。
サーバーとオンラインで接続している場合、テンプレートをアップロードするためのリンクが提供されます。
設計プロセス中に接続が維持されている場合は、次のいずれかをクリックし、完成したテンプレートをBI Publisherサーバーにアップロードします。
「テンプレートのアップロード」では、編集したテンプレートをアップロードし、カタログ内の既存のテンプレートを置き換えます。「テンプレートのアップロード」は、「レイアウト・テンプレートを開く」ボタンを使用して、「テンプレートを開く」ダイアログから既存のテンプレートを開いている場合にのみ有効化されます。
「名前を付けてテンプレートをアップロード」では、テンプレートに「テンプレート名」および「ロケール」を割り当てるように求められ、そのファイルはBI Publisherカタログ内のレポートにアップロードされます。
BI Publisherサーバーへの直接接続が使用できないか、適切ではない場合は、Template Builderを使用して、切断モードでテンプレートの設計およびプレビューができます。
切断モードでは、「オンライン」グループのコマンドは有効化されません。切断モードで作業する場合のプロセス・フローは次のようになります。
次の項では、切断モードでの作業時におけるTemplate Builder機能の詳細について説明します。
Template Builderでデータ・フィールド・マッピングをテンプレートに挿入するにはサンプル・データが必要です。
レポート・データ・モデルからサンプル・データを保存する詳細は、『Oracle Business Intelligence Publisherデータ・モデリング・ガイド』のデータ・モデルのテストとサンプル・データの生成に関する項を参照してください。
レポート・データ・モデルにはアクセスできないが、レポートにはアクセスできる場合は、かわりに、レポート・ビューアからサンプル・データを保存できます。
レポート・ビューアからデータを保存するには:
オフラインの間に、サンプル・データをローカル・ディレクトリにロードできます。
レポート・データ・モデルからローカル・ディレクトリにサンプル・データを保存したら、それをTemplate Builderにロードします。
オフラインの間に、レポート・テンプレートをアップロードできます。
切断モードで作業する場合は、「テンプレート・ファイルのアップロードによるレイアウトの追加」の説明に従って、テンプレートをレポート・エディタにアップロードします。
「挿入」グループの「フィールド」コマンドは、ロードされたサンプル・データからスプレッドシートの目的の場所にデータ要素をマップします。
フィールドを挿入するには:
フィールドを挿入すると、Template Builderにより、一意のExcel定義名がセルに割り当てられ、さらにデータ要素をその定義名にマップすることで、データとセルの間にマッピングが作成されます。次の図に示すように、そのマッピングがXDO_METADATAシートに書き込まれます。
XDO_METADATAシートは、デフォルトでは非表示であることに注意してください。
「フィールド」ダイアログは次の機能を提供します。
検索
大きくて複雑な構造を持つXML文書の場合は、検索機能を使用して特定のフィールドを検索します。完全なフィールド名またはフィールド名の一部を「検索」フィールドに入力し、「次を検索」をクリックします。
ビジネス・ビューまたはXMLタグ名ビュー
接続モードで作業する場合は、データ構造の表示に、データ・モデルで定義されているビジネス・ビュー名を使用するか、またはXMLタグ名を使用するかを選択できます。ビジネス・ビュー名は、データ・モデル・エディタのデータ要素に定義されたわかりやすい名前です。このオプションは、ローカルに格納されたファイルからサンプル・データをロードしている場合や、データ・モデルにビジネス・ビュー名が含まれない場合は使用できません。
「フィールド・ブラウザ」では、Template Builderにより挿入されたコードと、XDO_METADATAシートに手動で挿入したコードの表示および編集ができます。
フィールド・ブラウザで1行のコードを選択すると、テンプレート内の対応するセルが強調表示されるため、編集、削除または表示しているフィールドを把握できます。
フィールド・ブラウザを使用してフィールドを編集または削除するには:
Template Builderのプレビュー機能を使用して、テンプレートをBI Publisherサーバーにアップロードする前にテストします。
サンプル・データがロードされたテンプレートをプレビューするには:
「BI Publisher」タブの「プレビュー」グループで、「Excel」をクリックします。
サンプル・データがテンプレートに適用され、新しいブックで出力ドキュメントが開きます。
接続モードで作業する場合は、「レポートの表示」を使用して、レポート・データ・モデルのライブ・データによりテンプレートをテストするオプションがあります。
ライブ・データを使用してテンプレートを表示するには:
「BI Publisher」タブの「オンライン」グループで、「レポートの表示」をクリックします。
Template Builderにより、BI Publisherサーバーでデータ・モデルを実行するリクエストが送信され、テンプレートに適用するデータが戻されます。データ・モデルにパラメータが必要な場合は、値の入力が求められます。新しいExcelワークブックで出力ドキュメントが開きます。
BI PublisherのExcel Analyzer機能は非推奨になりました。以前のリリースのBI PublisherのExcelアナライザ・テンプレートを使用している場合、Excel Template Builderの「インポート」コマンドを使用して、Excelアナライザ・テンプレートをインポートし、Excelテンプレートに変換できます。「インポート」コマンドは、オフライン・モードを使用して作成されたExcelアナライザ・テンプレートのみをサポートします。
Template Builderにより、Excelアナライザ・テンプレートがExcelテンプレートに変換されます。
この項では、Excel Template Builderを使用して単純なExcelテンプレートを作成する手順を説明することで、Excelテンプレートの概念を示します。
この手順では次のステップを実行します。
サンプル・データをロードすると、適切にフォーマットされたベースが提供され、それを使用してテンプレートを構築できます。
サンプル・データのロードのために選択するメソッドは、接続モードでの作業か、または切断モードでの作業かによって異なります。
接続モードでの作業時にデータをロードする場合は、「Template BuilderからのBI Publisherカタログへのアクセス」を参照してください。
切断モードでの作業時にデータをロードする場合は、「切断モードでのサンプル・データのロード」を参照してください。
この例に対するサンプル・データは、部門ごとの従業員のリストです。従業員は部門ごとにグループ分けされ、リストされています。
<?xml version="1.0" encoding="UTF-8"?> <! - Generated by Oracle BI Publisher 11.1.1.4.0 - > <DATA> <DEPT> <DEPARTMENT_ID>20</DEPARTMENT_ID> <DEPARTMENT_NAME>Marketing</DEPARTMENT_NAME> <EMPS> <EMPLOYEE_ID>201</EMPLOYEE_ID> <EMP_NAME>Michael Hartstein</EMP_NAME> <EMAIL>MHARTSTE</EMAIL> <PHONE_NUMBER>515.123.5555</PHONE_NUMBER> <HIRE_DATE>1996-02-17T00:00:00.000+00:00</HIRE_DATE> <SALARY>13000</SALARY> </EMPS> <EMPS> <EMPLOYEE_ID>202</EMPLOYEE_ID> <EMP_NAME>Pat Fay</EMP_NAME> <EMAIL>PFAY</EMAIL> <PHONE_NUMBER>603.123.6666</PHONE_NUMBER> <HIRE_DATE>1997-08-17T00:00:00.000+00:00</HIRE_DATE> <SALARY>6000</SALARY> </EMPS> </DEPT> <DEPT> ... ... </DEPT> </DATA>
このチュートリアルで説明されたテンプレートを構築するには、BI Publisher Desktopとともにインストールされた「サンプル」フォルダで使用可能なサンプル・データを使用します。<Install Directory>\BI Publisher Desktop\Template Builder for Word\samples\Excel templates\Employee By Departments\EmpByDept Single Sheets\EmpbyDeptExcelData.xml
に非常に類似したデータ・セットがあります。
Excelを使用すると、レイアウト設計が簡略化されます。
次の図に示すように、Excelで、データをどのように表示するかを決定し、サンプル設計を作成します。
この設計では、部門名と、部門内の各従業員に対してそれぞれ1行を表示します。フォント・スタイル、網掛け、配置など、設計にExcelの書式設定を適用できます。このレイアウトには合計フィールドが含まれることに注目してください。このフィールドの値はデータには含まれず、計算が必要になります。
データをテンプレート内のデータ・フィールドにマップできます。
このレイアウト設計では、次のフィールドをデータからテンプレートにマップする必要があります。
レイアウトのフィールド | データの要素 |
---|---|
部門 |
DEPARTMENT_NAME |
従業員名 |
EMP_NAME |
従業員ID |
EMPLOYEE_ID |
電子メール |
|
電話 |
PHONE_NUMBER |
給与 |
SALARY |
Template Builderを使用してフィールド・マッピングを挿入するには:
グループとは、特定の要素の出現ごとに繰り返されるデータのセットです。
サンプル・テンプレートの設計では、次の2つのグループを使用します。
<EMPS>要素の出現ごとに、従業員のデータ(名前、電子メール、電話番号、給料)がワークシートに表示されます。
<DEPT>要素の出現ごとに、部門名およびその部門に属する従業員のリストが表示されます。
つまり、従業員は部門ごとにグループ化され、各従業員のデータは従業員要素ごとにグループ化されます。これを最終的なレポートで実行するには、グループ化要素ごとに繰り返すセルの前後に繰返しグループを挿入します。
データは、テンプレート内に作成するグループに基づいて構造化されている必要があることに注意してください。この例のデータ構造は次のとおりです。
<DATA> <DEPT> <EMPS>
これにより、レポートに適切なグループ化が設定されます。
従業員の繰返しグループを挿入するには:
グループを構成するセルを選択します。この例では、最初のグループは、表内で1行を構成する、A8からE8のセルの従業員データです。
「BI Publisher」タブの「挿入」グループで、「繰返しグループ」をクリックします。
「BI Publisherのプロパティ」ダイアログで次を選択します。
「各」リストからEMPSを選択します。
「グループ基準」リストから、EMPLOYEE_IDを選択します。
次の図は、従業員グループに対するBI Publisherプロパティの定義を示しています。ここでは、従業員データの行のみが強調表示されています。ヘッダーは強調表示しないでください。また、セル合計も強調表示されていないことに注意してください。
部門の繰返しグループを挿入するには:
次の図は、「BI Publisherのプロパティ」ダイアログの選択内容を示しています。
Excelでは正規日付書式は認識されません。XMLデータの日付書式が正規書式である場合(つまりYYYY-MM-DDThh:mm:ss+HH:MM)、正しく表示するには関数を適用する必要があります。
日付を表示するオプションの1つは、ExcelのREPLACEとSUBSTITUTE関数を使用する方法です。このオプションでは、完全な日付とタイムスタンプが維持されます。データ内の日付部分(YYY-MM-DD)のみが必要な場合は、DATEVALUE関数を使用する方法があります。次の例では、両方のオプションの使用方法を示します。
例: Excelでの正規日付の書式設定
この手順では、部門別従業員テンプレートと最初の例のデータを使用して、HIRE_DATE要素をレイアウトに追加し、次の図の列Eに示すように日付を表示します。
RTFテンプレートの設計と同様に、Excelテンプレートの設計では、XMLデータからのフィールドをExcelワークシート内の位置にマップするというパラダイムに従います。
Excelテンプレートでは、BI Publisherの特殊構文とともにExcelの機能を使用して、このマッピングを実行します。データ要素の直接マッピングに加えて、Excelテンプレートでは、より複雑な書式設定命令をサポートするために、セル範囲およびコマンドを、そのコマンドを含むように指定された別のワークシートで定義します。このシートは、XDO_METADATAシートと呼ばれます。
Excelテンプレートでは、名前付きセルおよびセルのグループを使用して、BI Publisherによるデータ要素の挿入を可能にします。
セルにはBI Publisher構文を使用して名前が付けられ、XMLデータへのマッピングが設定されます。セル名はテンプレート内で、名前付きセルと、XDO_METADATAシートで定義されている計算および書式設定指示との間のマッピングを設定するためにも使用されます。
テンプレートの内容とレイアウトは、レポートへの入力として使用されるXMLデータ・ファイルの内容と階層に対応している必要があります。テンプレート内の繰返し要素の各グループは、XMLファイル内の親子関係に対応している必要があります。データがExcel内の適切なレイアウトに対応するように構造化されていない場合は、XSLTの前処理またはグループ化関数を使用して、データの再グループ化を実行できます。ただし、複雑にすることなく最高の性能を得るには、レポート・レイアウトを念頭に置いてデータ・モデルを設計することをお薦めします。
BI Publisherでは、Excel定義名機能を使用して、データ・フィールドおよび繰返し要素を識別します。
Excelの定義名は、セル、セルの範囲、式または定数を表す名前です。
ヒント:
定義名およびMicrosoft Excel 2007での使用法の詳細は、Microsoftのヘルプ・トピック「数式で名前を定義し使用する」を参照してください。Template Builder for Excelを使用してフィールドおよび繰返しグループを挿入すると、定義名が自動作成されます。また、定義名を手動で挿入することもできます。Excelテンプレート内で使用する定義名は、この章で説明する構文を使用すると同時に、Microsoft Excelのヘルプ・ドキュメントに記載されているMicrosoft社のガイドラインに従う必要があります。BI Publisherの定義名は、テンプレート・シートに従っています。
注意:
手動でExcelテンプレートを作成する(つまり、BI Publisher Desktop Excel Template Builderを使用しない)場合、「XDO_?」とマークアップされたすべてのセルに、デフォルト値を用意する必要があります。デフォルト値は、レポート・データXMLファイルのデータ型に適合している必要があります。XDO_?セルのデフォルト値がない場合、それらのテンプレート・セルから生成された出力セルの形式が失われ、想定外の結果が生じることがあります。BI Publisher Desktopを使用してExcelテンプレートを作成する場合、デフォルト値は、レポート・データ・ファイルのサンプル・データの最初の行を使用して自動的に入力されます。BI Publisher定義名は、接頭辞XDO_で識別されるExcel定義名です。
テンプレートでBI Publisherコードを使用して定義名を作成することにより、テンプレート内のコードの位置とXMLデータ要素との間にリンクが作成されるほか、出力レポート内でデータ範囲の動的な拡張機能が維持され、そのデータ範囲を他の式計算、チャートおよびマクロで参照することもできます。
定義名が単純な表で使用されているかぎり、XDO_定義名をExcel固有の式で使用できます。
レポートの生成時には、式が正しく計算されるように、BI Publisherによって名前付きリージョンのリージョン範囲が自動的に調整されます。
ただし、テンプレート内にネストしたグループを作成すると、最終的なレポートでグループ内に生成されるセルは、正しい名前と適切に関連付けることができません。この場合、Excel固有の関数でのXDO_定義名の使用はサポートされません。
各Excelテンプレートには、テンプレート・ブック内にXDO_METADATAという名前のシートが必要です。
BI Publisherでは、このシートをテンプレート内で次のように使用します。
テンプレートをExcelテンプレートとして識別します。
Template Builderを使用して作成するフィールドおよびグループ・マッピングのコードを挿入します。
テンプレート設計者として、テンプレート内のフィールドまたはグループでより高度な計算および命令の処理を実行するように指定する場合もこのシートを使用します。BI Publisherには、特別なレポート機能を提供するための関数セットが備わっています。その他の書式設定および計算は、XSLTで記述できます。
注意:
詳細は、「XDO_METADATAシートの書式」および「高度なBI Publisher関数の使用」を参照してください。
Template Builderを使用して新しいExcelテンプレートの設計を開始する場合、「挿入」機能のいずれかを初めて使用するときは、Template Builderによって非表示のXDO_METADATAシートが自動作成されます。シートが作成されたことを示すメッセージが表示されます。
BI Publisherでは、そのシートを非表示のシートとして作成します。XDO_METADATAシートの表示および編集を行うには、Excelの「再表示」
コマンドを使用します。
XDO_METADATAシートは、次の図に示す書式を使用して作成されます。この書式は、ヘッダー・セクションとデータ制約セクションという2つのセクションから構成されます。どちらのセクションも必須です。
ヘッダー・セクションでは、列Aのすべてのエントリをリストする必要がありますが、値が必要なのは、図に示したように、Template Typeの1つだけです。列Aのエントリを次に示します。
Version
ARU-dbdrv
Extractor Version
Template Code
Template Type
Preprocess XSLT File
Last Modified Date
Last Modified By
データ・フィールド・マッピングおよび他の処理命令を指定するには、データ制約セクションを使用します。詳細は、次の項を参照してください。
BI Publisherには、追加のレポート機能を実行するための一連の関数が用意されています。
これらの関数は、XDO_METADATAシートのData Constraintsリージョンで定義します。
これらの関数では、次に示すように、XDO_METADATAシートの列A、BおよびCを使用します。
列Aは、関数を宣言するか、計算またはXSL評価の結果をマップするオブジェクトの定義名を指定するために使用します。
列Bは、XDO関数に対するデータ制約を制御する方法を記述する特殊なXDO-XSL構文、またはXDO_名前付き要素に適用する特殊な制約を記述するXSL構文を入力するために使用します。
列Cは、一部の関数に対する追加の指示を指定するために使用します。
これらの関数については、後続の項で説明します。
次に示すコマンドおよびBI Publisher構文とXSLの組合せを使用して、テンプレートに関数を追加できます。
次の表に、コマンドのサマリー・リストを示します。使用法の詳細は、該当する項を参照してください。
関数 | コマンド |
---|---|
XDO_SHEET_?およびXDO_SHEET_NAME_? |
|
XDO_PARAM_?n? |
|
XDO_LINK_?リンク・オブジェクト名? |
|
XDO_SUBTEMPLATE_?n? |
|
XDO_EXT_?n? |
レポートから複数のシートにデータを分割するためのロジックを定義できます。
注意:
複数のシートにわたってイメージを挿入することはできません。テンプレート・シートにイメージが含まれている場合、データが複数のシートに分割されると、イメージは最初のシートにのみ表示されます。レポート・データを複数のシートに分割するには、次のコマンドのセットを使用します。
XDO_SHEET_?
コマンド: 新規シートにデータを分割するためのロジックを定義します。
XDO_SHEET_NAME_?
コマンド: 各シートのネーミング規則を指定します。
XDO_METADATAシートで、複数のシートを作成するために複数のテンプレートを指定できます。各テンプレートに対して、XDO_SHEET_?
コマンドとXDO_SHEET_NAME_?
コマンドのペアを定義します。XDO_SHEET_?
コマンドとXDO_SHEET_NAME_?
コマンドの各ペアに対して、元のテンプレート・シート名と同じ名前を定義してください。
次の表に、列のエントリを示します。
列Aのエントリ | 列Bのエントリ | 列Cのエントリ |
---|---|---|
|
例:
|
例:
|
|
例:
|
例:
|
列Aに、XDO_SHEET_?
およびXDO_SHEET_NAME_?
コマンドを入力します。
列Bで、次のようにします。
XDO_SHEET_?
コマンドは、XMLデータ内の既存の高レベル・ノードを参照する必要があります。この例で、<?.//DEPT?>
は、データ内で<DEPT>
が出現するたびに新規シートを作成します。データがフラットな場合、先にデータを前処理して適切な階層を作成しないかぎり、このコマンドは使用できません。データを前処理するには、XSLTファイルで変換を定義してから、XDO_METADATAシートのヘッダー・セクションのPreprocess XSLT Fileフィールドでこのファイルを指定します。「XSL変換(XSLT)ファイルを使用したデータの前処理」を参照してください。
XDO_SHEET_NAME_?
コマンドで、シートに適用する名前を定義する必要があります。新しいシート名を導出するためのXSL式を入力します。式はXMLデータ内の要素または属性の値を参照できます。または、これらの要素に対して文字列操作を実行して最終的なシート名を定義することもできます。次の例では、DEPARTMENT_NAME
の値にDEPTグループ内の従業員数を「-」で連結して、各シートに名前を付けます。<?concat(.//DEPARTMENT_NAME,'-',count(.//EMP_NAME))?>
列Cに、元のテンプレート・シートの名前を指定します。たとえば、レポートの最初の3つのワークシートにサマリー・データが含まれ、Sheet2およびSheet3にバースト・データがある場合は、XDO_SHEET_?コマンドとXDO_SHEET_NAME_?コマンドの最初のペアには、元のテンプレート・シート名として<?Sheet2?>を指定し、2つ目のコマンド・ペアには<?Sheet3?>を指定します。XDO_SHEET_?またはXDO_SHEET_NAME_?コマンドのいずれかに対してテンプレート・シート名を指定しないと、BI Publisherでは定義ペアに対して何も実行されません。
例: 複数のシートへのデータの分割
この例では、従業員データを使用して次のことを行います。
各部門の従業員を個別のシートにリストします。
各部門に対して新しいワークシートを作成します。
各ワークシートに部門の名前を付けます。たとえば、Marketingなどです。
最初の100人の従業員を、最初の100人の従業員の部門用の個別のシートにリストします。
最初の100人の従業員が属する各部門について、新しいワークシートを作成します。
各ワークシートに、部門名とその部門内の従業員IDが100未満の従業員数で構成される名前を付けます。たとえば、人事部門に従業員IDが100未満の従業員が3人いる場合は、Human Resources-3となります。
これらのエントリを次の図に示します。
次の図は、生成されるレポートを示しています。各部門のデータは専用のシートに表示され、各シートには、指定した規則に従った名前が付いています。
パラメータを定義するには、XDO_PARAM_?n?関数を使用してパラメータを宣言してから、$parameter_name構文を使用して値をパラメータに渡します。パラメータはデータ・モデル内で定義されている必要があります。
パラメータを宣言するには、次の表で説明されているコマンドを使用します。
列Aのエントリ | 列Bのエントリ |
---|---|
XDO_PARAM_?n? ここで、nはパラメータの一意の識別子です |
<?param@begin:parameter_name;parameter_value?> ここで、parameter_nameはデータ・モデルからのパラメータ名で、parameter_valueはオプションのデフォルト値です。 次に例を示します。
|
パラメータの値をセル内で直接使用するには、次の表で説明するように、XDO_定義名の定義内で、パラメータを$parameter_nameとして参照します。
列Aのエントリ | 列Bのエントリ |
---|---|
XDO_PARAM_?parameter_name? 次に例を示します。 XDO_PARAM_?Country? |
<?$parameter_name?> 次に例を示します。
|
$parameter_nameを使用して、XDO_METADATAシート内の他のロジックや計算内でパラメータを参照することもできます。
例6-1 例: パラメータの定義と受渡し
Countryという名前のパラメータを宣言して参照する手順は次のとおりです。
テンプレート・シートで、セルを定義名でマークします。次の図では、セルが定義名XDO_?Country?でマークされています
非表示のシートで、次の図に示すように、そのセルにパラメータ値を割り当てます。
次の表に示すように、データ・セルにハイパーリンクを定義するには、XDO_LINK_?コマンドを使用します。
例: リンクの定義
列Aのエントリ | 列Bのエントリ |
---|---|
XDO_LINK_?セル・オブジェクト名? 次に例を示します。 XDO_LINK_?INVOICE_NO? |
<動的URLを構築するxsl文> 次に例を示します。
|
たとえば、会社で顧客向けの請求書を発行しているとします。請求書はWebサーバーからアクセス可能な中央の場所に保存されており、請求書番号(INVOICE_NO)で識別できます。
各請求書へのダイナミック・リンクを作成するレポートを生成する手順は次のとおりです。
次の図に示すように、テンプレート・シートで、INVOICE_NOを表示するセルに、XDO定義名XDO_?INVOICE_NO?を割り当てます。
XDO_METADATAシートで、次の表に示されるように適切な値を入力します。
列Aのエントリ | 列Bのエントリ |
---|---|
XDO_LINK_?INVOICE_NO? |
|
Excelでのエントリを次の図に示します。
レポート出力は次の図に示すように表示されます。XDO_METADATAシートで定義したロジックが適用され、各INVOICE_NOエントリに対してハイパーリンクが作成されます。
いずれのXDO_コマンドでもコールおよび参照できるXSLサブ・テンプレートを宣言するには、次のコマンドを使用します。
注意:
Template Builder for Excelでは、サブ・テンプレートをインポートするテンプレートに対するプレビューはサポートされていません。
サブテンプレートをインポートするには、次の表に示すコマンドを入力します。
列Aのエントリ | 列Bのエントリ |
---|---|
XDO_SUBTEMPLATE_?n? ここで、nは一意の識別子です。たとえば、XDO_SUBTEMPLATE_?1?となります。 |
|
サブ・テンプレートをコールするには、列Aで、結果を返すセルの名前を宣言してから、実行するその他のXSL処理とともにcall-template構文を入力します。次の表にこれらのコマンドを示します。
列Aのエントリ | 列Bのエントリ |
---|---|
XDO_?セル・オブジェクト名? |
|
XSLサブテンプレートおよびカタログ内でのサブテンプレート・オブジェクトの作成の詳細は、「XSLサブテンプレートの設計」を参照してください。
例: サブ・テンプレートのインポートとコール
次のサブテンプレートがBI PublisherカタログにPaymentsSummary-SubTemplate.xsbとしてアップロードされているとします。このサブ・テンプレートは、pPayTypeという名前のパラメータの値を評価し、その値に基づいて、支払いタイプを示す文字列を返します。
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> </xsl:template> <xsl:template name="BRM_PAY_TYPES"> <xsl:param name="pPayType" select="string('ALL')"/> <xsl:choose> <xsl:when test="$pPayType = '0'">UNDEFINED</xsl:when> <xsl:when test="$pPayType=string('10000')">PREPAID</xsl:when> <xsl:when test="$pPayType=string('10001')">INVOICE</xsl:when> <xsl:when test="$pPayType=string('10003')">CREDIT CARD</xsl:when> <xsl:when test="$pPayType=string('10005')">DIRECT DEBIT</xsl:when> <xsl:when test="$pPayType=string('10011')">CASH</xsl:when> <xsl:when test="$pPayType=string('10012')">CHECK</xsl:when> <xsl:when test="$pPayType=string('ALL')">ALL</xsl:when> </xsl:choose> </xsl:template> </xsl:stylesheet>
Excelテンプレートで、XDO定義名XDO_?TYPE?のフィールドを定義しています。このフィールドには、次の図に示すように、サブテンプレートで実行されるコードから返される文字列に基づいて移入されます。
Data Constraintsリージョンに、次の表に示されているコマンドを入力します。
列Aのエントリ | 列Bのエントリ |
---|---|
XDO_SUBTEMPLATE_?1? |
|
XDO_?TYPE? |
|
XDO_SUBTEMPLATE_?1?関数は、BI Publisherカタログからサブテンプレートをインポートします。
XDO_?TYPE?セル・エントリは、列Bに入力されたサブ・テンプレート処理の結果をマップします。
テンプレート内にJava拡張ライブラリへの参照を組み込み、このライブラリ内のメソッドをコールしてテンプレート内で処理を実行できます。
Java拡張ライブラリを参照するには、次の表に示されているコマンドを使用します。
列Aのエントリ | 列Bのエントリ |
---|---|
XDO_EXT_?n? ここで、nは一意の識別子です。例: XDO_EXT?1? |
<?namespace:xmlns:bipext="extension library"?> 例: <?namespace:xmlns:bipext="http://www.example.com/XSL/Transform/java/ example.com.xmlpublisher.reports.BIPExtension"?> |
1つのテンプレート・ファイル内で複数の拡張ライブラリを定義することができます。
例: Java拡張ライブラリのコール
拡張ライブラリに、テンプレート内でコールする次の2つのメソッドが含まれるものとします。
bipext:infTimeToStr()
bipext:infStrToTimet()
前述のようにライブラリを宣言したら、列AにXDO定義名を入力し、列Bで関数をコールすることにより、メソッドを適用したいセルを指定します。次の表に、コマンドの例を示します。
列Aのエントリ | 列Bのエントリ |
---|---|
XDO_?PARAM_START_DATE? |
<xsl:value-of select="bipext:infTimeToStr(bipext:infStrToTimet((.//PARAM_START_DATE)[1],2),3)" |
Java拡張ライブラリを宣言してコールするためのXDO_METADATAシートのエントリを次の図に示します。
この表内のコマンドには、XMLデータ・ファイルに特定の書式設定属性が存在することが必要です。
次の表に、コマンドのサマリー・リストを示します。使用法の詳細は、該当する項を参照してください。
関数 | コマンド |
---|---|
|
|
|
Excelの書式設定を使用してテンプレートに一貫したスタイルを定義できますが、XDO_STYLEコマンドを使用すると、XMLデータに基づいて、任意のデータ・セルに対して別のスタイルを動的に定義することができます。
XDO_STYLEコマンドでは、スタイルを適用するセル、スタイルをいつ適用すべきかを決定するためのロジックおよび適用するスタイル・タイプを指定します。スタイル値はXMLデータ内に存在している必要があります。次の表に例を示します。
列Aのエントリ | 列Bのエントリ | 列Cのエントリ |
---|---|---|
XDO_STYLE_n_?cell_object_name? 次に例を示します。 XDO_STYLE_1_?TOTAL_SALARY? |
<サポートされる値を返すxsl評価> 次に例を示します。
|
スタイルの種類 次に例を示します。 BottomBorderStyle |
BI Publisherでは、次の表に示すような標準のExcelスタイルの種類および値がサポートされています。
スタイルの種類 | サポートされる値(列Bの評価によって返される必要があります) | サポートされるタイプ(列Cに入力します) |
---|---|---|
標準 |
BORDER_NONE BORDER_THIN BORDER_MEDIUM BORDER_DASHED BORDER_DOTTED BORDER_THICK BORDER_DOUBLE BORDER_HAIR BORDER_MEDIUM_DASHED BORDER_DASH_DOT BORDER_MEDIUM_DASH_DOT BORDER_DASH_DOT_DOT BORDER_MEDIUM_DASH_DOT_DOT BORDER_SLANTED_DASH_DOT |
BottomBorderStyle TopBorderStyle LeftBorderStyle RightBorderStyle DiagonalLineStyle |
次の表に示す種類のいずれかを使用して色を設定することもできます。
スタイルの種類 | サポートされる値(列Bの評価によって返される必要があります) | サポートされるタイプ(列Cに入力します) |
---|---|---|
標準 |
色スタイルの設定時には、RRBBGG 16進フォーマットで値を指定します。例: borderColor="0000FF" |
BottomBorderColor TopBorderColor LeftBorderColor RightBorderColor DiagonalLineColor |
BI Publisherでは、次の表に示す値の下線の種類もサポートされています。
スタイルの種類 | サポートされる値(列Bの評価によって返される必要があります) | サポートされるタイプ(列Cに入力します) |
---|---|---|
下線 |
UNDERLINE_NONE UNDERLINE_SINGLE UNDERLINE_DOUBLE UNDERLINE_SINGLE_ACCOUNTING UNDERLINE_DOUBLE_ACCOUNTING |
UnderlineStyle |
1つのセルに対して、複数の下線スタイルを定義できます。
例: スタイルの定義
テンプレートにスタイルを適用するには、スタイル値がデータ内に存在している必要があります。この例では、Excelテンプレートに示したDEPT_TOTAL_SALARYフィールドに、罫線スタイルと下線スタイルを適用します。
この例では、次のデータを使用します。データ内のDEPT_TOTAL_SALARY要素には、これらの属性が定義されています。
borderStyle
underLineStyle
borderColor
これらの各属性の値を使用して、テンプレート内に定義されたロジックに基づいて、定義済のスタイルを適用します。
<?xml version="1.0" encoding="UTF-8"?> <EMPLOYEES> <G_DEPT> <DEPARTMENT_ID>10</DEPARTMENT_ID> <DEPARTMENT_NAME>Administration</DEPARTMENT_NAME> <LIST_G_EMP> <G_EMP> <EMPLOYEE_ID>200</EMPLOYEE_ID> <EMP_NAME>Jennifer Whalen</EMP_NAME> <EMAIL>JWHALEN</EMAIL> <PHONE_NUMBER>515.123.4444</PHONE_NUMBER> <HIRE_DATE>1987-09-17T00:00:00.000-06:00</HIRE_DATE> <SALARY>4400</SALARY> </G_EMP> </LIST_G_EMP> <DEPT_TOTAL_SALARY borderStyle="BORDER_DOUBLE" underLineStyle="UNDERLINE_DOUBLE_ACCOUNTING" borderColor="0000FF">4400</DEPT_TOTAL_SALARY> </G_DEPT> <G_DEPT> <DEPARTMENT_ID>20</DEPARTMENT_ID> <DEPARTMENT_NAME>Marketing</DEPARTMENT_NAME> <LIST_G_EMP> <G_EMP> <EMPLOYEE_ID>201</EMPLOYEE_ID> <EMP_NAME>Michael Hartstein</EMP_NAME> <EMAIL>MHARTSTE</EMAIL> <PHONE_NUMBER>515.123.5555</PHONE_NUMBER> <HIRE_DATE>1996-02-17T00:00:00.000-07:00</HIRE_DATE> <SALARY>13000</SALARY> </G_EMP> <G_EMP> <EMPLOYEE_ID>202</EMPLOYEE_ID> <EMP_NAME>Pat Fay</EMP_NAME> <EMAIL>PFAY</EMAIL> <PHONE_NUMBER>603.123.6666</PHONE_NUMBER> <HIRE_DATE>1997-08-17T00:00:00.000-06:00</HIRE_DATE> <SALARY>6000</SALARY> </G_EMP> </LIST_G_EMP> <DEPT_TOTAL_SALARY borderStyle="BORDER_DOUBLE" underLineStyle="UNDERLINE_DOUBLE_ACCOUNTING" borderColor="0000FF">19000</DEPT_TOTAL_SALARY> </G_DEPT> ... </EMPLOYEES>
スタイルを定義する手順は次のとおりです。
次の図に示すように、Excelテンプレートで、データからのDEPT_TOTAL_SALARYを表示するフィールドに、定義名XDO_?DEPT_TOTAL_SALARY?を割り当てます。
XDO_METADATAシートで、次のように入力します。
上罫線スタイルを定義するには、次の表に示すエントリを使用します。
列Aのエントリ | 列Bのエントリ | 列Cのエントリ |
---|---|---|
XDO_STYLE_1_?DEPT_TOTAL_SALARY? |
|
TopBorderStyle |
列Aのエントリは、このスタイル・コマンドを、名前XDO_?DEPT_TOTAL_SALARY?が割り当てられたセルにマップします。
列Bのエントリは、DEPT_TOTAL_SALARY要素の属性borderStyleからスタイル値を取得します。サンプル・データからのborderStyleの値はBORDER_DOUBLEです。
列Cのエントリは、TopBorderStyleをセルに適用するようにBI Publisherに指示します。
上罫線の色を定義するには、次の表に示すエントリを使用します。
列Aのエントリ | 列Bのエントリ | 列Cのエントリ |
---|---|---|
XDO_STYLE_2_?DEPT_TOTAL_SALARY? |
|
TopBorderColor |
列Aのエントリは、このスタイル・コマンドを、名前XDO_?DEPT_TOTAL_SALARY?が割り当てられたセルにマップします。
列Bのエントリは、DEPT_TOTAL_SALARY要素の属性borderColorからスタイル値を取得します。サンプル・データからのborderColorの値は0000FF (青)です。
列Cのエントリは、TopBorderColorをセルに適用するようにBI Publisherに指示します。
下線スタイルを定義するには、次の表に示すエントリを使用します。
列Aのエントリ | 列Bのエントリ | 列Cのエントリ |
---|---|---|
XDO_STYLE_3_?DEPT_TOTAL_SALARY? |
|
UnderlineStyle |
列Aのエントリは、このスタイル・コマンドを、名前XDO_?DEPT_TOTAL_SALARY?が割り当てられたセルにマップします。
列Bのエントリは、DEPT_TOTAL_SALARY要素の属性underLineStyleからスタイル値を取得します。サンプル・データからのunderLineStyleの値はUNDERLINE_DOUBLE_ACCOUNTINGです。
列Cのエントリは、UnderLineStyleをセルに適用するようにBI Publisherに指示します。
次の図は、Data Constraintsリージョンの3つのエントリを示しています。
レポートを実行すると、次の図に示すように、スタイル・コマンドがXDO_?DEPT_TOTAL_SALARY?セルに適用されます。
列Bに定義されている評価の結果が大文字・小文字を区別しない文字列"True"を返す場合に、1行のデータの表示を抑制するには、XDO_SKIPROWコマンドを使用します。
次の表に、エントリの例を示します。
列Aのエントリ | 列Bのエントリ |
---|---|
XDO_SKIPROW_?cell_object_name? 次に例を示します。 XDO_SKIPROW_?EMPLOYEE_ID? |
<文字列Trueを返すxsl評価/> 次に例を示します。 <xsl:if test="string-length(./EMPLOYEE_ID/@MANAGER) != 0"><xsl:value-of select="./EMPLOYEE_ID/@MANAGER"/></xsl:if> |
例: データ要素属性に基づく行のスキップ
この例では、EMPLOYEE_ID要素に値TrueのMANAGER属性が含まれる場合、Excelテンプレートで従業員データ行の表示が抑制されます。
次のデータを想定します。従業員Michael HartsteinのEMPLOYEE_ID要素に、値が"True"のMANAGER属性があることに注目してください。このセット内の他のEMPLOYEE_ID要素にはこの属性はありません。
<?xml version="1.0" encoding="UTF-8"?>
<EMPLOYEES>
<G_DEPT>
<DEPARTMENT_ID>20</DEPARTMENT_ID>
<DEPARTMENT_NAME>Marketing</DEPARTMENT_NAME>
<LIST_G_EMP>
<G_EMP>
<EMPLOYEE_ID MANAGER="TRUE">201</EMPLOYEE_ID>
<EMP_NAME>Michael Hartstein</EMP_NAME>
<EMAIL>MHARTSTE</EMAIL>
<PHONE_NUMBER>515.123.5555</PHONE_NUMBER>
<HIRE_DATE>1996-02-17T00:00:00.000-07:00</HIRE_DATE>
<SALARY>13000</SALARY>
</G_EMP>
<G_EMP>
<EMPLOYEE_ID>202</EMPLOYEE_ID>
<EMP_NAME>Pat Fay</EMP_NAME>
<EMAIL>PFAY</EMAIL>
<PHONE_NUMBER>603.123.6666</PHONE_NUMBER>
<HIRE_DATE>1997-08-17T00:00:00.000-06:00</HIRE_DATE>
<SALARY>6000</SALARY>
</G_EMP>
<G_EMP>
<EMPLOYEE_ID>652</EMPLOYEE_ID>
<EMP_NAME>William Morgan</EMP_NAME>
<EMAIL>WMORGAN</EMAIL>
<PHONE_NUMBER>219.123.7776</PHONE_NUMBER>
<HIRE_DATE>1994-10-17T00:00:00.000-06:00</HIRE_DATE>
<SALARY>8000</SALARY>
</G_EMP>
</LIST_G_EMP>
</G_DEPT>
...
</EMPLOYEES>
MANAGER属性がTrueに設定されている場合に従業員データ行の表示を抑制するには、次の表に示すエントリを、Data Constraintsセクションに入力します。
列Aのエントリ | 列Bのエントリ |
---|---|
XDO_SKIPROW_?EMPLOYEE_ID? |
<xsl:if test="string-length(./EMPLOYEE_ID/@MANAGER) != 0"><xsl:value-of select="./EMPLOYEE_ID/@MANAGER"/></xsl:if> |
このテンプレートからの出力を次の図に示します。従業員Michael Hartsteinはレポートに含まれていないことに注目してください。
テンプレート内のデータをグループ化するには、次の表に示す関数を使用します。
関数 | コマンド |
---|---|
|
|
|
たとえば、データを複数のシートに分割する場合など、レイアウトに特定のデータのグループ化が必要なときは、XDO_GROUP
コマンドを使用して、フラットなデータをグループ化します。
次の表に、エントリの例を示します。
列Aのエントリ | 列Bのエントリ | 列Cのエントリ |
---|---|---|
次に例を示します。
|
次に例を示します。
|
次に例を示します。
|
XDO_?cell object name?
でマークアップされたグループ定義セクションの始まりと終わりに配置するXSL文を定義します。対応するグループに適切な定義をそれぞれに指定することにより、テンプレート内に複数のグループをネストしてマークできます。
ネストされたグループでXDO_GROUP_?
が使用される場合は、最終的なレポートにおけるXDO定義名の範囲が無意味になります。この場合、最終的なレポート内の式における定義名を参照しないでください。コマンドXDO_MARKUP_?
を使用して、最終的なレポート内のXDOマークアップ・アクティビティを無効にできます。
次の表は、XDO_METADATAシートでXDO_MARKUP_?
を使用した状態を示しています。
列Aのエントリ | 列Bのエントリ |
---|---|
XDO_MARKUP_? |
falseまたはFALSE (Excelの「セルの書式設定」ダイアログで「テキスト」としてセルを書式設定する必要があります。) |
また、テンプレートに数多くの定義名が含まれていて、ネストされたグループの複数のレベルでそれらの定義名が使用されている場合は、Excelでは、生成された定義名の数を処理できないことがあります。この場合は、XDO_MARKUP_?
コマンドを使用して、生成されたレポートのマークアップを無効にできます。
falseに設定されていると、BI Publisherでは、XDO_GROUP_?
によって生成されたいずれの結果に対しても、定義名はいっさい生成されません
XDO_REGROUPは、定義名を使用して定義を宣言することにより、データを再グループ化します。
XDO_REGROUPロジックはXDO_GROUPロジックの短縮形であり、XDO_METADATAシートにおけるXSLTcoding要件が要求されません。したがって、その定義は直接、XDO_REGROUP_?定義名に作用するか、またはXDO_METADATAシートにおけるそれ以外の定義に作用する必要があります。次の表にエントリを示します。
列Aのエントリ | 列Bのエントリ |
---|---|
XDO_REGROUP_? |
XDO_REGROUP_?UniqueGroupID?levelName?groupByName?sortByName?sortByName?sortByName? 説明
|
次の3つの表は、3つのネストされたグループの作成方法を示しています。
列Aのエントリ | 列Bのエントリ |
---|---|
XDO_REGROUP_? |
XDO_REGROUP_?PAYMENTSUMMARY_Q1?PAYMENTSUMMARY_Q1?PAY_TYPE_NAME? |
前述の表に示す定義では、最も外側のグループがPAYMENTSUMMARY_Q1として定義され、PAY_TYPE_NAMEによってグループ化されます
列Aのエントリ | 列Bのエントリ |
---|---|
XDO_REGROUP_? |
XDO_REGROUP_?COUNTRYGRP?XDO_CURRGRP_?COUNTRY? |
前述の表に示す定義は、外から2番目のグループを作成します。このグループには名前COUNTRY_GRPが割り当てられ、要素COUNTRYによってグループ化されます。
列Aのエントリ | 列Bのエントリ |
---|---|
XDO_REGROUP_? |
XDO_REGROUP_?STATEGRP?XDO_CURRGRP_?STATE? |
前述の表に示す定義は内側のグループSTATEGRPを作成し、sortByNameパラメータSTATEを含みます。
最高のパフォーマンスを達成するには、データ処理を可能なかぎり実行するようにデータ・モデルを設計します。データ・エンジンから必要な出力を得られない場合は、データを変換する命令を含むXSLTファイルを使用してデータの前処理を実行できます。
次のようなユースケース・サンプルがあります。
適切なレイアウトをサポートするために必要な階層を設定するグループの作成
データ要素へのスタイル属性の追加
Excelテンプレートでは不可能であるか、パフォーマンス上の理由から望ましくない、複雑なデータ処理ロジックの実行
注意:
Template Builder for Excelでは、XSLT前処理が必要なテンプレートのプレビューはサポートされていません。
XSLT前処理ファイルを使用するには:
ファイルを作成し、.xslとして保存します。
テンプレートの場合と同様に、ファイルをBI Publisherカタログ内のレポート定義にアップロードします。
カタログ内のレポートに移動します。
「編集」をクリックします。
「新規レイアウトの追加」をクリックします。
「アップロード」をクリックします。
「アップロード」ダイアログのフィールドを完成させ、テンプレートの「タイプ」としてXSLスタイルシート(HTML/XML/テキスト)を選択します。
アップロード後に、「リストの表示」をクリックします。レポートの表示時にユーザーからこのテンプレートがオプションとして見えないようにするため、「アクティブ」を選択解除します。
注意:
テスト目的では、データへのテンプレートの適用時に中間データを表示できるように、XSLテンプレートをアクティブなままにしたほうがよい場合もあります。テストの完了後にテンプレートを非アクティブに設定します。
レポート定義を保存します。
ExcelテンプレートのXDO_METADATAシートのHeaderセクションで、Preprocess XSLT Fileパラメータにファイル名を入力します。例: splitByBrand.xsl
このトピックでは、XSLT前処理ファイルを使用してフラット・データをグループ化し、Excelでの複数のシートに分割できるようにする操作の2つの例について説明します。
例は次のとおりです。
レポート・データがExcel 2003のシートの行サイズ(シート当たり65,536行)を超えている場合には、行数でデータを分割するというオプションもあります。
どちらの例でも、次のXMLデータが使用されます。
<ROWSET> <ROW> <Products.Type>COATINGS</Products.Type> <Products.Brand>Enterprise</Products.Brand> <Markets.Region>CENTRAL REGION</Markets.Region> <Markets.District>CHICAGO DISTRICT</Markets.District> <Periods.Year>2000</Periods.Year> <Measures.Dollars>1555548.0</Measures.Dollars> </ROW> <ROW> <Products.Type>COATINGS</Products.Type> <Products.Brand>Enterprise</Products.Brand> <Markets.Region>EASTERN REGION</Markets.Region> <Markets.District>NEW YORK DISTRICT</Markets.District> <Periods.Year>2000</Periods.Year> <Measures.Dollars>1409228.0</Measures.Dollars> </ROW> ... </ROWSET>
この例では、XSLT前処理ファイルを使用して、データのグループ化を作成し、そのグループ化を基準にしてデータを複数のExcelシートに分割できるようにします。
この例では、Products.Brand
フィールドによってサンプル・データがグループ化されます。