无法设置CrReportViewer的源

时间:2011-05-12 10:05:07

标签: c# wpf crystal-reports

我正在尝试在WPF窗口中显示水晶报告。以下代码适用于导出和打印报告。它只是我无法工作的最后一部分。我已经尝试了底部的所有3行。 crReportViewer.DataContextcrReportViewer.Content似乎没有做任何事情,而crReportViewer.ReportSource会抛出错误

'SAPBusinessObjects.WPF.Viewer.CrystalReportsViewer'不包含“ReportSource”的定义,并且没有可以找到接受“SAPBusinessObjects.WPF.Viewer.CrystalReportsViewer”类型的第一个参数的扩展方法“ReportSource”(你是否遗漏了) using指令或程序集引用?)

            rptRebateReport cryRpt = new rptRebateReport();
            cryRpt.Load();//error thrown here
            cryRpt.Refresh();
            cryRpt.SetDatabaseLogon("user", "password", "server", "database");
            cryRpt.SetParameterValue("@SupplierNo", custNumberParam);
            cryRpt.SetParameterValue("@DateFrom", startDateParam);
            cryRpt.SetParameterValue("@DateTo", endDateParam);

            crReportViewer.DataContext = cryRpt;
            crReportViewer.ReportSource = cryRpt;
            crReportViewer.Content = cryRpt;

对此错误的任何帮助都将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

显然,用于WPF的CrystalReportViewer有一个名为“Content”的属性。这个Content属性实际上是一个StackPanel,有3个子节点,第三个是这个新元素“ViewerCore”,它填充了DockPanel上的所有可用空间。

ReportSource属性位于此ViewerCore中,因此要访问此ViewerCore(ReadOnly)属性,您需要执行以下操作:

ViewerCore view = crReportViewer.ViewerCore;
view.ReportSource = cryRpt;

现在它完美运作。