【Excelアドイン】Exceでレポートを作成する

# はじめに #
ここではSharperlight Excelアドインを使用してExcelレポートを作成する方法についての記事を書いています。

# エクセルでレポートを作成する #
折角なのでSharperlightアドインを利用して簡単なレポートを作成してみます。

エクセルを起動して**1.セルC5**を選択、Sharperlightリボンより**2.** `テーブル`アイコンをクリックしてクエリービルダを起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/d902b43c-fbaf-e755-952c-fd43afd678e2.png)
## フィルターの指定 ##
SQL文では`FROM句`と`WHERE句`に相当する部分です。
今回は`製品`つまりデータソースに**Dynamics 365 Business Central**を使用します。`Company`は**＜DEFAULT＞**でいきましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/753b3fbe-1a05-7092-8f7b-0a46a496a14f.png)
`テーブル`には、**Cust. Ledger Entry**を指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/b6842922-7921-9491-a8a9-37e16307f243.png)
このテーブルを選択すると、``Customer No.`` と `Posting Date`という二つの必須フィルターが自動的に表示されます。今回は二つともそのフィルター値を**＜ALL＞**のまま使用します。この二つのフィルターに関しては、どんな値でもいいですよということです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/0cb074b9-0816-37d7-459d-c6b4c5c0c06a.png)
また、下段左側に選択されたテーブルの列およびJOIN情報がツリー形式で表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/1ded9bf6-73da-5014-3acf-338946d91165.png)

ここから出力に使用する列やフィルターとして使用したい列を選択することになります。
早速、**Document No.**、**Due Date**および**Open**列をドラッグ&ドロップでフィルター領域に設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/dac81923-187b-5f9d-8f52-b6e877e2b673.png)
それぞれの値はこのように指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/5c6f9ec8-ee03-095e-9ab1-68457ac39e31.png)

## 出力アイテムの指定 ##
SQL文では`SELECT句`に該当する部分です。
選択ツリービューよりダブルクリックあるいはドラッグ&ドロップで、出力領域にクエリ結果として表示したい列を設定します。
今回はこれら三つの列を出力します。`Amount`列は更に降順でソートするオプションを付与しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/cd21a0fa-3a5f-89a2-0f85-5ddbe0fa14ba.png)

## プレビューおよび確定 ##
`プレビュー`ボタンでクエリを検証してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/59360767-4139-6c9d-602e-7e7bda22d1aa.png)
正常に動いたので`OK`ボタンでエクセル上にデータを展開します。
**セルC5**にSharperlightの表数式が定義され、すぐ下のセルを起点とした表が作成されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/401c2ad1-5daa-2143-f9f2-29bf4ae8f3de.png)

## セル参照を用いたフィルターの改善 ##
もう少しこのレポートを使い易くします。
**セルA3**と**セルA4**にそれぞれ以下のように記入します。また**セルB3**には**＜DEFAULT＞**と記入します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/8b49b433-d465-3a29-e795-e2835e914928.png)

**セルC5**をダブルクリックしてクエリ定義を呼び出します。
初めに**1.** クエリビルダの`Company`フィルターの値フィールドを選択します。次に**2.** **セルB3**をダブルクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/ce8c1d19-8d12-0e84-48de-ea4dc4c6832c.png)
**セルB3**を参照する式が、クエリビルダの`Company`フィルターの値フィールドに設定されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/2fee5b83-c475-98f8-8c7f-1d696150c324.png)

同じように、初めに**1.** クエリビルダの`Due Date`フィルターの右側の値フィールドを選択します。次に**2.** **セルB4**をダブルクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/e39428e0-1f61-0367-af9b-4a71afcfe36a.png)
**セルB4**を参照する式が、クエリビルダの`Due Date`フィルターの右側の値フィールドに設定されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/61643525-f60b-a944-3402-44f6c0c810af.png)
**セルB4**には、**30/06/2022**と日付値を設定しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/b9fe3b22-11ed-ccfe-8dfe-8f5848502738.png)

これでクエリの変更は終了です。クエリビルダの`OK`ボタンで変更を反映させます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/5b1d27da-2ea4-1aca-9460-afe4654ff995.png)
これで、**セルB3**と**セルB4**に入力された値が、Sharperlightの表数式（クエリ）のフィルタに反映されます。
試しに**セルB4**をダブルクリックしてみてください。日付選択ダイアログが起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/b5eadae3-3c80-5233-7f5a-72bac96404f6.png)
違う日付を選択すると直ぐにクエリの再計算が実行されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/c8a338f3-4ae4-2d1a-d4bc-4e11d0fceeb8.png)

フィルターセルの背景色を変更したりレポートを整えます。
エクセル標準のThemesを利用します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/4d10e244-e9df-d0f1-9b4b-ab992f8ccdc7.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/5f5017ad-0b23-60e8-c982-17c667b753d9.png)

# おわりに #
どうでしょうか、レポート作成が簡単にできそうですね。