実行時にRDLCのテーブルをデータバインドできるかどうか疑問に思っています。
レポートを作成し、テーブルコントロールを配置しましたが、VSコンパイラはデータセットを設定する必要があると言っています。
しかし、データセットとテーブルアダプターを作成するのではなく、C#コードで作成されたデータセットを使用してこのテーブルにデータをロードしたかったのです。
出来ますか?
実行時にRDLCのテーブルをデータバインドできるかどうか疑問に思っています。
レポートを作成し、テーブルコントロールを配置しましたが、VSコンパイラはデータセットを設定する必要があると言っています。
しかし、データセットとテーブルアダプターを作成するのではなく、C#コードで作成されたデータセットを使用してこのテーブルにデータをロードしたかったのです。
出来ますか?
レポートにはダミーデータセットが必要です。実行時にデータをロードすることでそれを埋めることができます。
はい、可能です。ReportViewerコントロールでデータテーブルを再バインドできます。RDLCファイルで使用されているテーブル名と一致する限り、任意のデータテーブルを使用できます。
これを行うためのコードは、VB.NETでは次のようになります。
ReportViewer1.Reset()
ReportViewer1.LocalReport.DataSources.Clear()
ReportViewer1.LocalReport.LoadReportDefinition(ms) 'Reload your definition (RDLC)
'Bind dataTables to the report viewer control (This is the 'dataset' it is asking about)
ReportViewer1.LocalReport.DataSources.Add(New ReportDataSource("DATANAME", DATATABLE))
ReportViewer1.RefreshReport()
ダミーデータセットを使用するか、設計時にデータセットなしでランタイムレポートにXSLTを使用することもできます。