この記事では、概要レポートの各行に他のレポートへのリンクを貼ってみます。
リンク作成にはExpression(拡張表現)を使用します。リンク先のレポートは、概要レポートの対象行の詳細を表示します。
つまり、概要レポートと詳細レポートを用意することになります。
早速、Sharperlightアプリケーションメニューから Sharperlightパブリッシャーを起動します。
詳細レポートの準備
[新規]ボタンでレポート編集用ダイアログを開きます。グループ、コード、タイトル、レポートのタイトルを入力します。
[クエリーを編集]ボタンで[クエリビルダ]を開きます。このようなクエリを作成します。
フィルターに設定されている売上日(年/月)と製品分類名で表示する詳細なデータを絞り込みます。
[OK]ボタンでクエリを保存し、さらに[OK]ボタンでレポートも保存します。
概要レポートの準備
この概要レポートがリンク元のレポートとなります。
[新規]ボタンでレポート編集用ダイアログを開きます。グループ、コード、タイトル、レポートのタイトルを入力します。
[クエリーを編集]ボタンで[クエリビルダ]を開きます。このようなクエリを作成します。
売上日(年/月)単位で製品分類名別に数量を集計して表示するレポートです。
赤枠で囲んだところにはExpression(拡張表現)が定義されています。ここで詳細レポートへのリンクを記述します。
ではどのようにリンクを定義するか見てみます。
[出力]領域の右クリックメニューからExpression(拡張表現)を追加します。
[拡張表現]タブの関数階層表示からHTML -> Link to another Reportを選択します。
テンプレートが編集用テキスト領域に表示されます。このテンプレートを編集していきます。
編集後はこうなります。
リンク先レポートの指定(グループコードとレポートコード)が見えます。UrlEncode("QiitaSample.SalesLinkDetail")。
フィルターへ値を渡す用のパラメータも定義します。フォーマットは &flt{フィルターの名前}= となります。渡す値は各行の売上日(年/月)と製品分類名なので、行参照が設定されています。HtmlEncode({%売上日})とHtmlEncode({%ProPro製品分})。
レポートURLのパラメータについては、後日別の記事で!
クエリおよびレポートを保存して完了です。
レポートの表示
概要レポートのURLをブラウザのアドレスバーに貼り付けてレポートを表示します。
http://{yourservername}/mdService1Rest/Report/?query=QiitaSample.SalesLinkSummary
詳細を押すと...詳細レポートが開きます。
概要レポートから渡された売上日(年/月)と製品分類名が参照タグを経由してタイトルに表示されます。
表には詳細が表示されます。