HTML5ビューワ使用時にレポートデータソースを動的に変更する方法は?【※サンプル有り】
対象製品
ActiveReports for .NET 9.0J
詳細
HTML5ビューワはクライアント側のブラウザ上で動作するJavaScriptコンポーネントであり、レポートの実行結果は ActiveReports 9.0J Webサービス(ActiveReports.ReportService.asmx)を経由して取得します。
このため、レポートデータソースをサーバーサイドのコード(.vb/.cs)から変更することは通常はできません。
代替案としては、以下の方法が考えられます。
このため、レポートデータソースをサーバーサイドのコード(.vb/.cs)から変更することは通常はできません。
代替案としては、以下の方法が考えられます。
- パラメータを介してデータの取得条件を変更する方法
HTML5ビューワでは、クライアントスクリプトからレポートにパラメータを渡すことが可能です。
たとえば、パラメータ"parameter1"に値を渡す場合、以下のようなスクリプトになります。
◆サンプルコード(Javascript)
$(function ()
{
var viewer = GrapeCity.ActiveReports.Viewer(
{
element: '#viewer',
report:
{
// セクションレポート(コード形式)の場合
id: 'NameSpace.SectionReport1' ,
parameters: [
{
// パラメータの名称と値の組み合わせを記述します。
name: 'parameter1',
value: '100'
}]
},
reportService: {
url: 'ActiveReports.ReportService.asmx'
},
uiType: 'desktop',
localeUri: 'ja.txt',
});
});
このパラメータを使用して、レポートデータソースの取得条件(SQLのWHERE句)を変更したり、フィルタを掛けることでレポートに出力されるデータを動的に変更することが可能です。
パラメータやフィルタの使用方法については、製品ヘルプの以下のトピックをご参照ください。
ActiveReportsユーザーガイド
- 概念
- 対話的な機能
- パラメータ
- フィルタ
- Webサービスをカスタマイズする方法
ActiveReports.ReportService.asmxを継承したWebサービスを作成し、HTML5ビューワから参照することで、イベント内でレポートの生成やデータソースの変更を独自に行うことが可能です。
たとえば、レポート生成時に発生するイベント"OnCreateReportHandler"では、クライアントスクリプトから"reportID"が文字列として渡されます。この文字列に独自のパラメータを付加し、それによって使用するデータソースを決定するという方法が考えられます。
詳しい実装方法については、こちらのサンプルをご覧ください。
※本サンプルはASP.NET MVCアプリケーションとして構築しておりますが、ASP.NETアプリケーションでも同様の方法が適用可能です。
関連情報
キーワード
HowTo