0

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

我没有收到编译时错误,但我的报告查看器显示以下“本地报告处理期间发生错误。尚未指定报告'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 应用程序中更改表单加载的设置时,我得到了上面的错误。

请有人可以帮我

4

1 回答 1

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>
于 2011-11-18T06:19:04.707 回答