Sharperlightパブリッシャーで作成したWebクエリ(公開クエリともいう)を別のWebクエリのデータソースとして使用する方法を紹介します。
データソースとして使用するwebクエリの作成
Sharperlightアプリケーションメニューからパブリッシャーを選択します。
パブリッシャーウインドウの下部にある新規ボタンでWebクエリを新規作成します。
Webクエリのダイアログが表示されるので、お好みのコードとグループを入力し、クエリーを編集ボタンをクリックします。
ここでは、コード:WebQueryDataSource、グループ:QiitaSampleと入力してみましょう。
クエリビルダーが起動したら、簡単なクエリを設計します。
モードには、詳細レポート、製品には、SAPのコネクターを使用してみましょう。既定の会社名が自動選択されます。ここでは、OEC Computersになっています。テーブルには、Sales Order - Row(売上伝票の詳細)を選択します。
フィルターの設定や出力項目の選択を以下のように行います。
注)SAPコネクターは現在のところ英語版のみ、将来的に日本語対応可能。
ここまでで一度、OKボタンならびに適用ボタンを利用して作業内容を保存しましょう。
さて、もう一度クエリーを編集ボタンでクエリ定義を開きましょう。
ここでは、ユニオンクエリを追加します。フィルター領域で右クリックメニューを表示し、クエリーユニオンを選択します。
新規アイコンをクリックし、新たにクエリを追加します。
追加されたユニオンクエリーを選択し、クエリーを編集ボタンをクリックします。
親クエリーがテンプレートとして表示されます。ここではCompanyフィルターを、OECジャパン株式会社に設定します。
OKボタンで保存します。注意を促すダイアログが表示されますが、Yesで先に進みます。
ユニオンクエリーダイアログに戻るので、合計オプションの設定を行います。親クエリおよびユニオンクエリー共に、最下部のオプションを設定します。
閉じるボタンでクエリビルダーに戻り、OKボタンで保存します。クエリの公開ダイアログもOKボタンで保存終了しましょう。
ここまでが、データソースとなるクエリの作成でした。次に、作成したWebクエリをデータソースとして使用するWebクエリを作成します。
Webクエリをデータソースとして使用するWebクエリの作成
パブリッシャーウインドウで新規を選び、Webクエリの作成を行います。
ここでは、コード:WebQueryParent、グループ:QiitaSampleと入力してみましょう。
クエリーを編集ボタンをクリックします。
データソースとして使用するWebクエリは、二つの会社のデータをユニオンクエリで返します。それを利用して、両会社の月単位の売上額を比較できるようなクエリを作成してみましょう。
モードは概要レポート、製品にはシステム、テーブルにはカスタム定義のデータセットを選択します。
データセットを定義フィルターには、既定の値が表示されますが全て消去します。
新たに**_Publisher=QiitaSample.WebQueryDatasource** (_Publisher=グループ.コードの形式)と入力します。
選択領域には、指定したデータソースクエリの出力項目が選択項目として表示されます。
選択項目のCompanyをフィルター領域に設定し、と指定します。
次に、選択項目のDocument DateとDocument Totalを出力領域に設定します。
出力領域に設定したDocument Dateをダブルクリックし、出力オプションダイアログを開きます。
[一般]タブでは、説明を年/月とし、[関数]タブでは、日付オプションの年/月オプションを選びます。
出力領域に設定したDocument Totalの出力オプションでは、[関数]タブの集計オプションを合計にします。この出力項目にフィルターを適用オプションでは、Companyチェックボックスをチェックし、更に動的出力として設定オプションを選択します。[一般]タブでは、説明を売上合計とします。
ではプレビューボタンで、クエリ結果を表示してみましょう。
このようになります。(今回は選択した会社が同じ年月のデータを持っていなかったので、このような結果になってしまいました、ご了承ください。)