私は、Visual Studio 2015とEntity Frameworkのそれは、WindowsFormsHost
を使用してローカルレポートはReports.xaml
ビュー(ユーザーコントロール)内で実行されているいくつかのSSRSを持っている必要があります6を使用してMVVMライトWPFアプリを構築していますコントロール:this MSDN articleの指示に従い定義SSRSレポートのデータセットとデータソースを動的
<WindowsFormsHost x:Name="WindowsFormsHost">
<rv:ReportViewer x:Name="ReportViewer" />
</WindowsFormsHost>
、私は、埋め込まれたデータソースとデータセットを含むレポートを作成しました。ただし、ReportViewer
コントロールで表示するレポートをユーザーが選択できるようにするには、アプリケーションにComboBox
のレポート名が必要です。ここで
は私がやりたいものだ:
- は、適切な列名とレイアウト情報
- とのそれぞれが呼び出すコードでデータセットを切り替えることができる、RDLCレポートファイルの束を持っていますEntity Frameworkの
を経由して別のストアドプロシージャ私がRDLCファイルから全体DataSources
とDataSets
タグを削除手動で試してみたが、それはそれを吹くと、Visual Studioが無効なXMLエラーで戻ってきます。
XMLに埋め込まれたデータセット/データソースなしでレポートを作成することはできますか?次に、RDLC XMLはレイアウトを提供し、データはコードビハインドから来るでしょうか?
ここで私は、MSDNの記事から私のReports.xaml.cs
コードビハインドで試してみたものだが、それは埋め込まれたデータセットとデータソース使用しています:
public MainWindow()
{
InitializeComponent();
Messenger.Default.Register<string>(this, "RunReport", RunReport);
}
private void RunReport(string reportName)
{
Microsoft.Reporting.WinForms.ReportDataSource reportDataSource1 =
new Microsoft.Reporting.WinForms.ReportDataSource();
AdventureWorks2008R2DataSet dataset = new AdventureWorks2008R2DataSet();
dataset.BeginInit();
//Name of the report dataset in our .RDLC file
reportDataSource1.Name = "DataSet1";
reportDataSource1.Value = dataset.SalesOrderDetail;
this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
this._reportViewer.LocalReport.ReportEmbeddedResource =
"<VSProjectName>.Report1.rdlc";
dataset.EndInit();
//fill data into adventureWorksDataSet
AdventureWorks2008R2DataSetTableAdapters.SalesOrderDetailTableAdapter salesOrderDetailTableAdapter =
new AdventureWorks2008R2DataSetTableAdapters.SalesOrderDetailTableAdapter();
salesOrderDetailTableAdapter.ClearBeforeFill = true;
salesOrderDetailTableAdapter.Fill(dataset.SalesOrderDetail);
_reportViewer.RefreshReport();
}