在同一解决方案中从WPF项目中调用多个报表时,C#报告错误

时间:2011-11-15 16:42:07

标签: c# wpf reporting multiple-projects

我目前正在尝试使用多个报告,以便当用户从WPF应用程序的上下文菜单中选择项目时,将显示报告表单以及所选报告。如果从上下文菜单中选择每周,则需要在报告表单中显示每周报告。

我没有编译时错误,但我的reportviewer显示以下“本地报告处理期间发生错误。尚未指定报告'Reports.Report3.rdlc'的报告定义。”

点击上下文菜单项

时,我正在使用以下代码
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();

报表表单的项目名称称为Reports,WPF应用程序的项目名称称为RocketTools。我在WPF项目中引用了Reports项目。如果报告是报告表单中加载的默认设置,则可以正常加载。但是当我尝试更改设置时,表单在我的WPF应用程序中加载,我得到上面的错误。

请有人帮帮我

1 个答案:

答案 0 :(得分:0)

使用windowsformhosting解决了这个问题,而不是引用另一个项目。

下面可以看到XAML代码,然后通过向项目添加新项目并在创建报告窗口实例时使用原始问题中的代码手动创建表适配器和数据集。

<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>