作成日: 2020/04/15 最終更新日: 2020/04/15
文書種別
使用方法
詳細
本文書では、DataTableに格納したデータをレポートに設定する方法を説明します。
一例として、以下のメソッドの戻り値をレポートに設定します。
◆サンプルコード(VB.NET)
◆サンプルコード(C#)
レポートの種類によって方法が異なります。以下をご確認ください。
一例として、以下のメソッドの戻り値をレポートに設定します。
◆サンプルコード(VB.NET)
Private Function getData() As DataTable
Dim data As New DataTable
' データの取得処理など
Return data
End Function
Dim data As New DataTable
' データの取得処理など
Return data
End Function
◆サンプルコード(C#)
private DataTable getData()
{
var data = new DataTable();
// データの取得処理など
return data;
}
{
var data = new DataTable();
// データの取得処理など
return data;
}
レポートの種類によって方法が異なります。以下をご確認ください。
- ページレポート/RDLレポートの場合
LocateDataSourceイベントを経由してDataTableを設定します。
◆サンプルコード(VB.NET)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim rpt As New GrapeCity.ActiveReports.PageReport(New IO.FileInfo("PageReport1.rdlx"))
Dim doc As New GrapeCity.ActiveReports.Document.PageDocument(rpt)
' イベントハンドラを追加
AddHandler doc.LocateDataSource, AddressOf doc_LocateDataSource
' ラムダ式で記述する場合
'AddHandler doc.LocateDataSource, Sub(s, args) args.Data = getData()
Viewer1.LoadDocument(doc)
End Sub
Private Sub doc_LocateDataSource(ByVal sender As Object, ByVal args As GrapeCity.ActiveReports.LocateDataSourceEventArgs)
args.Data = getData()
End Sub
◆サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
var rpt = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo("PageReport1.rdlx"));
var doc = new GrapeCity.ActiveReports.Document.PageDocument(rpt);
// イベントハンドラを追加
doc.LocateDataSource += doc_LocateDataSource;
// ラムダ式で記述する場合
//doc.LocateDataSource += (s, args) => args.Data = getData();
viewer1.LoadDocument(doc);
}
private void doc_LocateDataSource(Object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args )
{
args.Data = getData();
}
ただし、LocateDataSourceイベントはそのままでは発生しません。レポート側での設定が必要になります。
まず、データソースを追加し、種類に「Dataset Provider」を選択します。
次に、データセットを追加し、フィールドを登録します。
ここで登録したフィールド名をコントロールに設定したら、準備完了です。
レポートの実行時にLocateDataSourceイベントが発生し、DataTableのデータがレポートに渡されます。
- セクションレポートの場合
DataSourceプロパティにDataTableを設定します。
◆サンプルコード(VB.NET)
Dim rpt As New SectionReport1
rpt.DataSource = getData()
rpt.Run()
Viewer1.Document = rpt.Document
◆サンプルコード(C#)
var rpt = new SectionReport1();
rpt.DataSource = getData();
rpt.Run();
viewer1.Document = rpt.Document;
DataTableのカラム名でフィールドが自動的に追加されます。
TextBoxなどのDataFieldプロパティに表示したいフィールド名を設定してください。
関連情報
旧文書番号
85434