WinForms reportViewer (.NET 3.5) DataTable からのデータのバインド
動的に作成された DataTable を reportViewer コントロールにバインドしようとしています。インターネット上にはこれに関する多くのチュートリアルがありますが、このプロジェクトでは機能しないようです... (スタックオーバーフローに関する関連する質問がありますが、私の場合は解決策が機能しません)
これは、Show Report Button のイベント ハンドラです。
private void btn_ShowRwport_Click(object sender, EventArgs e)
{
//Set the date range for the report
rptctn.SetDateRangeOne(listBox1.SelectedItem.ToString(), dateTimePicker_Start.Value, dateTimePicker_End.Value);
//Get the report datatable
DataTable dt = rptctn.GetReportTest(listBox1.SelectedItem.ToString());
//Set the datagridview
dataGridView1.DataSource = dt;
//Set the reportViewer
this.reportViewer1.LocalReport.DataSources.Clear();
Microsoft.Reporting.WinForms.ReportDataSource rprtDTSource = new Microsoft.Reporting.WinForms.ReportDataSource(dt.TableName, dt);
this.reportViewer1.LocalReport.DataSources.Add(rprtDTSource);
this.reportViewer1.RefreshReport();
}
dataGridView が機能するため、DataTable が適切に再試行されていることはわかっています... https://docs.google.com/file/d/0B6b_N7sDgjmvZHpEYS1BWWhqZ3c/edit?usp=sharing
プロジェクトには次の制約があります。
クライアント環境により、.NET 3.5 を使用する必要があります。(レポートビューア2008なので)
DataTable の作成と ReportViewer は別のパッケージ (アプリケーション/プレゼンテーション レイヤー) にあります。
レポート (DataTables) には可変数の行/列があるため、.rdlc ファイルを作成しないようにしています。
私の場合、動的に作成された DataTable をレポート ビューアーにバインドする方法を知っている人はいますか?