我正在尝试在WPF窗口中显示水晶报告。以下代码适用于导出和打印报告。它只是我无法工作的最后一部分。我已经尝试了底部的所有3行。 crReportViewer.DataContext
和crReportViewer.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;
对此错误的任何帮助都将不胜感激。
由于
答案 0 :(得分:0)
显然,用于WPF的CrystalReportViewer有一个名为“Content”的属性。这个Content属性实际上是一个StackPanel,有3个子节点,第三个是这个新元素“ViewerCore”,它填充了DockPanel上的所有可用空间。
ReportSource属性位于此ViewerCore中,因此要访问此ViewerCore(ReadOnly)属性,您需要执行以下操作:
ViewerCore view = crReportViewer.ViewerCore;
view.ReportSource = cryRpt;
现在它完美运作。