C# report error when calling multiple reports from within WPF project in the same solution
-
01-03-2021 - |
سؤال
I'm currently trying to use multiple reports so that when a user selects an item from a context menu in a WPF application the Report form appears with the selected report E.g. if weekly is selected from the context menu a weekly report needs to be displayed in the reports form.
I get no compile time errors but my reportviewer displays the following "An error occurred during local report processing. The report definition for Report 'Reports.Report3.rdlc' has not been specified."
I'm using the code below when clicking on the context menu item
Reports.Form1 Reports = new Reports.Form1();
Reports.reportViewer1.Reset();
Reports.reportViewer1.LocalReport.DataSources.Clear();
ReportDataSource reportDataSource1 = new ReportDataSource();
Reports.SpecificationsTableAdapter.Fill(Reports.RocketToolsDataSet.Specifications);
reportDataSource1.Name = "TestDataSet";
reportDataSource1.Value = Reports.SpecificationsBindingSource;
Reports.reportViewer1.LocalReport.DataSources.Add(reportDataSource1);
Reports.reportViewer1.LocalReport.ReportEmbeddedResource = "Reports.Report3.rdlc";
Reports.reportViewer1.Name = "reportViewer1";
Reports.reportViewer1.RefreshReport();
Reports.Show();
loading.Close();
The project name for the report form is called Reports and the project name for the WPF application is called RocketTools. I have referenced the Reports project within my WPF project. If the reports is the default setup on loading within the report form it loads fine. But when i try to alter the setting the form loads with within my WPF application i get the error above.
Please can someone help me out
المحلول
Solved the issue by using windowsformhosting rather than referencing another project.
XAML code can be seen below and then manually creating the table adapters and datasets by adding new items to the project and using the code in my original question when creating an instance of the reporting window.
<Window x:Class="RocketTools.Reports"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:viewer="clr-namespace:Microsoft.Reporting.WinForms;assembly=Microsoft.ReportViewer.WinForms"
Title="Reports" Height="691" Width="1117" Loaded="Window_Loaded" Closed="Window_Closed" WindowStartupLocation="CenterOwner">
<Grid x:Name="ReportGrid">
<WindowsFormsHost Margin="12" Name="windowsFormsHost1">
<viewer:ReportViewer x:Name="viewerInstance"></viewer:ReportViewer>
</WindowsFormsHost>
</Grid> </Window>