此报表绑定方案使用“通过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.若要查看该报表,请生成并运行您的项目。

转载于:https://www.cnblogs.com/OnlyYou/archive/2011/04/26/2029618.html

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐