WordでピクセルパーフェクトレポートのRTFテンプレートを作成するチュートリアル

# はじめに
ピクセル・パーフェクト・レポートとは、OAC（**Oracle Analytics Cloud**）の定型レポートを出力するためのコンポーネントのことです。
Oracle Analytics Publisher（**OAP**）とも呼ばれます。かつてはOracle Business Intelligence Publisher（**BIP**）という名前でした。

Microsoft Wordに対するアドイン（Template Builder）が提供されており、これを使うことでWordの機能を使ってレポートのデザインができます。
この記事では、Wordで作成したOAPのデザインテンプレートを「RTFテンプレート」と呼びます。

RTFテンプレートは奥が深いのですが、この記事は「さわり」をチョット体験してみます。

:::note
テンプレートを保存する際に、リッチ・テキスト・フォーマット（RTF）形式で保存するので「RTFテンプレート」と呼びます。
:::

# 1. 準備
Microsoft WordにアドインするTemplate Builderをダウンロードし、インストールします。
Template Builderは、Oracle Analytics Publisher Desktopとして提供されています。

次に、Oracle Databaseに接続して、SHサンプルスキーマに対してSQLを実行するための接続定義を作成します。
利用可能なOracle Databaseが、既に存在しているという前提です。

## 1.1 Publisher Desktopのダウンロードとインストール
Oracle Analytics Publisher Desktopのダウンロード

https://www.oracle.com/middleware/technologies/analytics-publisher/downloads.html

適したリンクをクリックします。

:::note
Wordにあわせて、Publisher Desktopの32bitあるいは64bitを選択します。
使用中のWordが32bit/64bitのいずれであるかわからない場合は、Wordを起動して「ファイル」－「アカウント」－「Wordのバージョン情報」で確認できます。
なお、Oracle Analytics Publisher Desktop（Template Builder）はWindows版のみの提供です。
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/abda23c0-c754-2e5c-0efb-9d9de6f04684.png)

Oracle Software Delivery Cloudからダウンロードできます。
※ ユーザー登録が必要です。

Oracle Analytics Clinet Toolを選択すると、いくつかの選択肢が表示されます。
必要なのは
- Oracle Analytics Publisher Desktop 7.0.0 for Microsoft Windows (64-bit) for (Microsoft Windows x64 (64-bit))

です。（Wordが64bitバージョンの場合）
タイミングによっては、バージョンは異なるかも知れません。
zipファイルがダウンロードされるので、展開して中の実行ファイルを実行します。
- 例：OracleAnalyticsPublisherDesktop-7.0.0-win64.exe

実行中のOfficeソフトはすべて終了しておいてください。

「次へ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/2c0549eb-667d-74a1-7f73-457958143981.png)

必要に応じてインストール先を変更して、「次へ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/362ce171-f7ff-f33b-dd71-a8e28741c91f.png)

しばらく待つとインストールが終了します。「完了」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/368cade8-df4e-b090-f3fc-ac29aa2e30db.png)

Wordが自動的に起動して、「ようこそ」ドキュメントが表示されます。
「Publisher」リボンが表示されていたら、インストールは成功です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/fa7451c1-62d0-4930-9674-032c70890bcf.png)

ひとまず、Wordは終了しておきます。

## 1.2 Oracle DBへの接続を作成
BI Service Administratorロールを保持しているユーザーでOACにログインし、「クラシック・ホームを開く」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/4dbad982-8983-dc99-3828-cd82b8e24e61.png)

右上の「マイ・プロファイル」アイコンをクリックして、「管理」ページに移動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/89415137-3c13-890b-0b08-72486a4bb12b.png)

「Publisherの管理」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/19b749eb-46b6-495a-5820-e1c0151b4408.png)

データソースから「JDBC接続」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/5bad7e09-54ce-bb42-ddaf-345e812aae5c.png)

「データソースの追加」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/8ef56338-0964-8852-1ca1-ee03632593aa.png)

今回はOracle Databaseに接続するので、必要な情報を入力します。
データソース名は「Oracle DB」としました。
「接続のテスト」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/80a70d13-add9-f042-4633-9bb8c943d827.png)

接続が確認できたら、このように画面上部に表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/717d5954-ccad-6132-f763-5470e51f83af.png)

画面を下までスクロールします。
この接続定義の利用をどのアプリケーション・ロールに許可するかを設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/05d6970a-39b1-1e93-ba80-d2087a6977c1.png)

画面上部の「適用」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/813396f4-bd02-f2d6-265c-69a90f06be08.png)

これで接続定義の作成が完了です。

# 2. ピクセル・パーフェクト・レポートのモデルを作成
「作成」をクリックして、「データ・モデル」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/9647f110-1116-a396-fa96-37645ee6562b.png)

無題のデータ・モデルが作成されます。
ダイアグラムに「SQL問合せ」を追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/d2e05c74-00db-2126-e441-1b766f78c841.png)

名前に任意の名前（例えば Sales）を入力し、データソースを先ほど作成したものに変更します。
「クエリー・ビルダー」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/2e9d6889-d79b-107b-bcc3-d7ac2ffb8d7e.png)

スキーマを「SH」にします。
「SALES」「CHANNELS」「PRODUCTS」をそれぞれクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/4c838161-786e-42fe-8ccc-081c1bcb1a12.png)

「CHANNELS」表の「CHANNEL_ID」列を「SALES」表の「CHANNEL_ID」列にドラッグ＆ドロップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/fe93b570-af28-e1b1-3892-06097dafc0ff.png)
同様に、「PRODUCTS」表の「PROD_ID」列を「SALES」表の「PROD_ID」列にドラッグ＆ドロップします。

- 「CHANNELS」表の「CHANNEL_CLASS」列
- 「PRODUCTS」表の「PROD_CATEGORY」列
- 「SALES」表の「QUANTITY_SOLD」列
- 「SALES」表の「AMOUNT_SOLD」列

の4つの列をクリックして選択した状態にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/54a2ce87-a511-fec1-ff1e-f8b96cfd6ea4.png)

「条件」タブに移動します。
次のように編集します。
|列|別名|ソート順序|関数|グループ基準|
|:-|:-|:-|:-|:-|
|CHANNEL_CLASS|チャネル|1||オン|
|PROD_CATEGORY|製品カテゴリ|2||オン|
|AMOUNT_SOLD|販売金額||SUM||
|QUANTITY_SOLD|販売数量||SUM||

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/5798dfe5-8356-d060-073c-ca551214c8f0.png)

「SQL」タブに移動して生成されたSQLを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/1d536996-e4f4-67b2-af60-3faf5dfd4a2c.png)

「結果」タブで検索結果を確認して「保存」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/306f8ddf-7eef-b24b-ec7f-5b6f2ba8dd24.png)

「OK」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/8d416597-450c-8cf0-a206-ded24424fc63.png)

「データ」タブに移動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/14a59220-be96-0a21-59b2-a6ffbfe5eecf.png)

「行」を「50」に変更し、「表示」をクリックします。
検索結果が表示されたら、「エクスポート」をクリックしてローカルに XMLファイルとして名前をつけて保存します。
（例えば、data.xmlなど）
さらに「サンプル・データとして保存」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/9b9c496f-9398-1e11-e620-8b7c1e43b118.png)

データ・モデルに名前をつけて保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/4ee15e6e-8af5-3fe8-8c84-f11001fdabff.png)

# 3. Wordでテンプレートを作成
Publisher Desktop（Template Builder）をまだインストールしていない場合は、この段階でインストールします。

## 3.1 データの読み込み
Wordを起動し「Publisher」リボンの「サンプルXML」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/5e7e5081-3642-1496-70c9-bcb9966d9346.png)

データ・モデルを作成する過程でエクスポートしておいたXMLファイルを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/bf24431e-aaee-2bdd-a3f1-49d99e86a063.png)
実際にデータベースに接続せずに、サンプルデータを使用してテンプレートの作成がおこなえます。

## 3.2 表ウィザードで表の作成
「Publisher」リボンの「表ウィザード」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/473b030b-c1d3-ce11-5b22-2a16eb62839f.png)

「表」を選択して「次」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/de3575db-826d-886d-baca-10584e8ba134.png)

データセット「/DATA_DG/G_1」を選択して「次」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/b8b64b7d-70da-4e2c-c108-5a5cf220c250.png)

すべてのフィールドを指定して、必要に応じて順番を変更します。
「次」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/8cf822c5-ff81-ad9a-5556-3e2aaa36c050.png)

グループ基準に「チャネル」を選択します。
「グループ上」ラジオボタンを選択し、「データはソート済」にチェックします。
区切りを「ページ」にして、「次」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/afc50817-7e09-082d-dc92-e6b197540003.png)

何も変更せずに「終了」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/4bde248c-a3b3-3ce0-c57c-38f7c8e68f08.png)

## 3.3 PDFでプレビュー
Publisherリボンの「PDF」をクリックしてPDF形式でプレビューします。
ここまで作成したテンプレートの保存が促されますので、任意の場所に保存します。
保存形式はRTF（リッチ・テキスト・フォーマット）です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/9068570e-911c-94ab-e205-4ed817b991cc.png)

PDFのビューワが起動してプレビューされます。
チャネルカテゴリが左上に表示され、チャネルカテゴリが変わったら改ページされています。
これは実際に検索しているわけではなく、最初に読み込んだサンプルデータを使用しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/8d6ab57d-a3cf-9182-3677-346bdd59ea4c.png)

## 3.4 Wordの機能も使いながら手直し
Wordで作成されたテンプレートをあらためて見てみます。
表はWordの機能で作成されています。ところどころグレーの背景になっている部分は「フィールド」です。これもWordの機能です。

販売金額と販売数量のセルは、右詰めにします。
続いて「販売金額」フィールドをダブルクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/e4ef8fc2-6184-c711-779e-c9d37de64ba4.png)

「BI Publisherのプロパティ」というウィンドウが表示されます。
「書式設定」のタイプを「数値」にして、書式を「#,##0.00」とします。
「一般」の表示するテキストを「9,999.99」にします。
「OK」をクリックして閉じます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/fc840d56-e87a-6bff-aa74-7b6c49f27219.png)

続いて「販売数量」フィールドをダブルクリックします。
「書式設定」のタイプを「数値」にして、書式を「#,##0」とします。
「一般」の表示するテキストを「9,999」にします。
「OK」をクリックして閉じます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/7c248201-6ad3-2d07-f45b-1f70de14eed0.png)

もう一度、PDFでプレビューしてみます。
販売金額と販売数量のデータが右詰めになりました。
また、販売金額は小数点第2位まで、販売数量は小数点なしでいずれも3桁区切りで表示されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/1cb17651-c609-94ae-da30-f34578fea196.png)

レポートにヘッダを設定します。
「挿入」リボンで「ヘッダー」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/57a954b1-f586-423c-f878-ed36addfb673.png)

「ヘッダーの編集」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/d6c14b3a-15c5-2c40-96c8-34ddde2b81a1.png)

ヘッダーとして「チャネル、製品カテゴリ別販売実績レポート」を入力しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/7638398f-e19c-463b-c99f-e61e7c563194.png)

フッターも作成して、ページ番号を表示するようにしてみました。

ヘッダーとフッターの編集が終了した状態です。
必要に応じてフォントのサイズや種類も変更しておきます。
チャネルの前に「チャネル名：」と表示されるようにしておきました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/543a92ac-d721-a045-0d25-b48c45f45007.png)

## 3.5 テンプレートの完成
最後にもう一度、PDFでプレビューします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/887dbb53-817f-77a3-7e8d-797a33dbf7fa.png)

問題なければ、テンプレートをRTF形式で上書き保存します。

# 4. テンプレートをアップロード
ここからは、再びブラウザでの作業となります。

## 4.1 レポートの作成とアップロード
クラシック・ホームに移動して、「作成」メニューから「レポート」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/d61cbd4e-bcb6-e52c-13ed-f5773fb1c6c4.png)

「レポートの作成」ウィザードが表示されたら、今回は使用しないので「取消」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/cc4ae961-b911-0e10-cc2c-1f9fdec81a78.png)

「データモデルの選択」アイコンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/0fac8da7-d7d1-0636-26a7-14f8008fa527.png)

先ほど作成し保存しておいたデータモデルを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/6b93157c-d37f-1b9e-e649-cec5100e5b52.png)

「レイアウトのアップロードまたは生成」セクションの「アップロード」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/e5be60c4-e65b-dd35-89c3-dcd78efed2ff.png)

Wordで作成したRTF形式のテンプレートを選択します。
タイプは「RTFテンプレート」、ロケールは「日本語 (日本)」とします。
「アップロード」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/ce23df54-9dce-e2d3-48e0-74d971908b5b.png)

テンプレートがアップロードされました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/816ca1ea-bff2-aed8-7c9f-ac8b8c1f5388.png)

右上の保存アイコンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/828e37f9-d2b4-ed02-c2f5-a6aa9a96886d.png)

任意の場所に名前をつけて保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/b1975dfa-65ca-7c7b-86a2-0310abf0ba74.png)

## 4.2 実行して確認
「レポートの表示」をクリックします。
今度は、サンプルデータではなく実際に検索が実行されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/b64b8fb5-7fcd-4541-8d95-90f11810e189.png)

チャネルごとに表が分割されヘッダーも表示されています。
ただ、PDFではなくHTMLで表示されています。
HTMLなので、ページ分割もされていません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/e2748943-ce1b-5624-b30f-f9b19ea75554.png)

## 4.3 表示形式を変更
レポートの右上にある、歯車の形をしたアクションアイコンをクリックします。
「レポートの編集」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/2172ff19-8d03-bfde-92e3-949a01d534b0.png)

「リストの表示」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/a66ebbcd-1f1e-736e-eb3b-1675745d04c2.png)

レポートのデフォルト・フォーマットを指定できます。
「PDF」にしました。
また、許可する出力フォーマットも指定することができます。
変更後、レポートを上書き保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/a6281e22-d2fd-f806-6dc8-a287e7ced7b9.png)

# 5. 完成
もう一度、レポートを表示します。
ヘッダー、フッターが表示され、チャネルが変わったら改ページされるPDFレポートが表示されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/d1d4beb1-df67-a60a-742a-97c366e22da4.png)


# 6. 参考情報
- [Oracle Analytics Publisher：ピクセルパーフェクトレポートのチュートリアル](https://qiita.com/tyo38/items/af9c5fb5e2612c8d2e53)
- ドキュメント（英語）
    - [Create RTF Templates Using the Template Builder for Word](https://docs.oracle.com/en/cloud/paas/analytics-cloud/acpmr/create-rtf-templates-using-template-builder-word.html#GUID-43369E75-4A64-4C70-956D-AB0DB496CA7A)
    - [Create RTF Templates](https://docs.oracle.com/en/cloud/paas/analytics-cloud/acpmr/create-rtf-templates.html#GUID-A229808F-D2F6-458E-8E52-9E7FA156FF0E) 
- ドキュメント（日本語：タイムラグあり）
    - [Template Builder for Wordを使用したRTFテンプレートの作成](https://docs.oracle.com/cd/E83857_01/paas/analytics-cloud/acpmr/create-rtf-templates-using-template-builder-word.html#GUID-43369E75-4A64-4C70-956D-AB0DB496CA7A)
    - [RTFテンプレートの作成](https://docs.oracle.com/cd/E83857_01/paas/analytics-cloud/acpmr/create-rtf-templates.html#GUID-A229808F-D2F6-458E-8E52-9E7FA156FF0E)