作成日: 2026/03/25 最終更新日: 2026/03/25
文書種別
使用方法
詳細
JSビューワに表示するレポートのデータソースを動的に変更したい場合、以下の方法が考えられます。
LocateDataSourceイベントを使用する方法(ページレポート/RDLレポートのみ)
StartupクラスでLocateDataSourceのイベントハンドラを設定し、レポートのデータソースにDataTableなどのオブジェクトを渡すことができます。
app.UseReportViewer(settings =
{
var reportsFolder = Path.Combine(env.ContentRootPath, "Reports");
settings.UseFileStore(new DirectoryInfo(reportsFolder));
settings.LocateDataSource = args =
{
var data = new System.Data.DataTable();
data.Columns.Add("field1");
data.Rows.Add("Sample Text");
return data;
};
});レポート側の設定方法については、以下の文書をご確認ください。
レポートのデータソースとしてDataTableを設定する方法
パラメータを経由してフィルタを設定する方法(ページレポート/RDLレポートのみ)
JSビューワでは、初期化オプションのreportParametersやopenReportメソッドの第2引数を使用して、レポートのパラメータに値を渡すことができます。
const param = [
{
name: 'ReportParameter1',
values: [100]
}
];
viewer.openReport("PageReport1.rdlx", param);パラメータに渡した値を使用して、レポートに出力するデータにフィルタを設定することができます。
レポート側の設定方法については、以下の文書をご確認ください。
パラメータを経由してJSONデータを設定する方法
JSONデータは文字列にシリアライズしてパラメータに渡すことができます。
const param = [
{
name: 'ReportParameter1',
values: [JSON.stringify(data)]
}
];
viewer.openReport("PageReport1.rdlx", param);ページレポート/RDLレポートの場合、データソースの種類に"Json Provider"を指定し、以下の式を設定します。
="jsondata=" & Parameters!ReportParameter1.Value具体的な実装方法はこちらのサンプルをご確認ください。
※データソースにパラメータを設定した状態でデータセットを追加する場合、クエリデザイナを使用することができず、クエリやフィールドをすべて手動で設定する必要があります。
一旦、テスト用のJSONファイル等に接続した状態でデータセットを追加してからパラメータに変更することをお勧めします。
この方法のみ、セクションレポートにも適用可能です。
DataInitializeイベントでJsonDataSourceを設定します。
private void SectionReport1_DataInitialize(object sender, EventArgs e)
{
var data = new JsonDataSource();
data.JsonData = this.Parameters["ReportParameter1"].Value;
data.JsonPath = "$.[*]";
this.DataSource = data;
}XML形式セクションレポート(.rpx)の場合はスクリプトに処理を実装します。
using GrapeCity.ActiveReports.SectionReportModel;
using GrapeCity.ActiveReports.Data;
public void ActiveReport_DataInitialize()
{
var data = new JsonDataSource();
data.JsonData = rpt.Parameters["ReportParameter1"].Value;
data.JsonPath = "$.[*]";
rpt.DataSource = data;
}