绑定到向上转换为 ReportDocument 的嵌入式报表类

  此报表绑定方案使用“通过ReportDocument对象模型进行报表绑定”。

  此报表绑定方案是对方案“绑定到嵌入报表类”的扩展。在此方案中,将把多个嵌入式报表绑定到一个使用一组公共代码的项目,而不用分别对每个报表进行编码。

  在此报表绑定方案中,将把多个嵌入式报表添加到项目,但是不将任何嵌入式报表直接绑定到CrystalReportViewer控。而是 运用实用工具方法,该方法使用选择其中一个嵌入式报表,实用工具将报表向上转换为ReportDocument的实例。于是ReportDocument实例会绑定到控件。

  1.将两个附加示例报表添加到项目中:

  Chart.rpt

  World Sales Report.rpt

  2.将Using语句添加到CrystalDescription.CrystalReport.Engine命名空的顶部。

  using CrystalDecisions.CrystalReports.Engine;

  3.创建一个专用帮且器方法以进行报表选择,如下所示:

private ReportDocument ChooseReport(int i)
{
switch(i)
{
case 1:
Chart chartReport = new Chart();
return (ReportDocument)chartReport;
case 2:
Hierarchical_Grouping hierarchicalGroupingReport = new
Hierarchical_Grouping();
return (ReportDocument)hierarchicalGroupingReport;
default:
World_Sales_Report worldSalesReport = new
World_Sales_Report ();
return (ReportDocument)worldSalesReport;

};
}
4.声明Report的实例,并通过调用ChooseReport()方法传入整数1以选择第一个报表Chart.rpt
ReportDocument reportDocument = ChooseReport(1);
5.可以创建一个占位符,在其中根据ReportDocument实例进行编码。 在此示例中,可以通过RecordSelectionFormula属性对报表数据进行过滤。
因为ReportDocument代表多个可能的报表,所以该过滤器将被应用于传递给它的任何报表。现在,传入一个空字符串。
reportDocument.RecordSelectionFormula = "";
6.将ReportDocument实例赋给ReportSource控件CrystalReportViewer属性。

crystalReportViewer.ReportSource = reportDocument;
7.若要查看该报表,请生成并运行您的项目。
posted @ 2011-04-26 18:03  晓炜  阅读(343)  评论(0)    收藏  举报