作成日: 2024/04/10 最終更新日: 2024/04/10
文書種別
使用方法
詳細
レポートのデータソース(接続文字列やSQL文など)を動的に設定する方法は、レポートの形式によって異なります。
セクションレポートの場合
セクションレポートのデータソースは、DataSourceプロパティから設定することが可能です。
レポートの作成前(Runメソッド実行前またはReportStartイベント内)にこのプロパティを更新することで、レポートのデータソースを動的に変更することが可能です。具体的な方法については、製品ヘルプの以下の内容をご参照ください。
実行時のデータソースの変更
実行時にレポートデータソースを変更する
よくある質問 > セクションレポート > データベース
データバインド サンプル
ページレポート/RDLレポートの場合
ページレポートやRDLレポートのデータソースを動的に設定する具体的な方法については、製品ヘルプの以下の内容をご参照ください。
なお、上記の製品ヘルプでは実行時に新規のデータソースを設定する方法をご紹介しておりますが、デザイン時に設定したデータソースを、実行時に変更することも可能です。
以下のサンプルコードは、デザイン時に設定したデータソースの接続文字列と、データセットのSQL文を変更する一例です。
◆サンプルコード (C#)
using GrapeCity.Enterprise.Data.Expressions;
...
var rpt = new GrapeCity.ActiveReports.PageReport();
rpt.Load(new System.IO.FileInfo("PageReport1.rdlx"));
rpt.Report.DataSources[0].ConnectionProperties.DataProvider = "OLEDB";
rpt.Report.DataSources[0].ConnectionProperties.ConnectString = @"data source=C:DataReels.mdb;provider=Microsoft.Jet.OLEDB.4.0;";
String tmpQuery = "Select Top 10 * From Product";
rpt.Report.DataSets[0].Query.CommandText = ExpressionInfo.Parse(tmpQuery, ExpressionResultType.String);
viewer1.LoadDocument(rpt.Document);
◆サンプルコード (VB.NET)
Imports GrapeCity.Enterprise.Data.Expressions
...
Dim rpt As New GrapeCity.ActiveReports.PageReport()
rpt.Load(New System.IO.FileInfo("PageReport1.rdlx"))
rpt.Report.DataSources(0).ConnectionProperties.DataProvider = "OLEDB"
rpt.Report.DataSources(0).ConnectionProperties.ConnectString = "data source=C:DataReels.mdb;provider=Microsoft.Jet.OLEDB.4.0;"
Dim tmpQuery As String = "Select Top 10 * From Product"
rpt.Report.DataSets(0).Query.CommandText = ExpressionInfo.Parse(tmpQuery, ExpressionResultType.String)
Viewer1.LoadDocument(rpt.Document)
※RDLレポートのように、複数のデータセットを定義している場合には、DataSetsのインデックスを0以外の数値に変更してください。(DataSets(x).Nameからデータセット名を取得することも可能です。)
なお、上記のようにデータセットの内容(SQL)を動的に変更することは可能ですが、フィールド構成は常に同じになるようにしてください。