내가 비주얼 스튜디오 2015 엔티티 프레임 워크 그것은 WindowsFormsHost
를 사용하여 지역 보고서는 Reports.xaml
뷰 (사용자 제어) 내에서 실행되는 일부 SSRS을 가질 필요가 6을 사용하여 MVVM 라이트 WPF 응용 프로그램을 짓고 있어요 제어 :정의 SSRS 보고서의 데이터 집합 및 데이터 소스를 동적으로
<WindowsFormsHost x:Name="WindowsFormsHost">
<rv:ReportViewer x:Name="ReportViewer" />
</WindowsFormsHost>
this MSDN article의 지침에 따라, 나는 포함 된 데이터 원본 및 데이터 세트와 보고서를 만들었습니다. 그러나 이제 사용자가 ReportViewer
컨트롤에 표시 할 보고서를 선택할 수 있도록 앱에 ComboBox
개의 보고서 이름이 있어야합니다.
- 이 RDLC 보고서 파일들을 가지고, 적절한 열 이름과 레이아웃 정보와 각
- 것은를 호출하는 코드에서 데이터 집합을 전환 할 수 있습니다 : 여기 는 내가하고 싶은거야 엔티티 프레임 워크 내가 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();
}