Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)qqpublished in(发表于) 2014/7/9 1:36:38 asp.net2.0中水晶报表的应用实例
asp.net2.0中水晶报表的应用实例
水晶报表的应用本节将通过一个实例来介绍如何在Windows应用程序中使用水晶报表。实例运行结果如图1所示。程序开发步骤如下所示。(1)新建一个Windows应用程序,命名为28_01,其主窗体默认为Form1.cs。(2)Form1.cs窗体中,添加一个ToolTip控件和一个CrystalReportViewer控件,分别用来作为工具栏和显示用户信息报表。(3)在当前项目中,新建一张Crystal报表,命名为CrystalReport1.rpt,它主要用来显示用户信息。(4)程序主要代码如下。Form1窗体在运行时,将数据表中的所有记录显示在CrystalReport1.rpt报表中,并通过crystalReportViewer1控件显示出来。Form1窗体的Load事件代码如下:private void Form1_Load(object sender, EventArgs e){sqlcon = new SqlConnection(M_str_sql);myda = new SqlDataAdapter("select * from tb_01", sqlcon);myds = new DataSet();myda.Fill(myds, "tb_01");CrystalReport1 CReport = new CrystalReport1();CReport.SetDataSource(myds.Tables["tb_01"]);crystalReportViewer1.ReportSource = CReport;}单击【查找】按钮,程序使用ReportDocument 类对象的Load()方法加载指定报表,并通过设置DataDefinition类RecordSelectionFormula属性,将指定SQL查询语句的执行结果绑定到水晶报表上。【查找】按钮的Click事件代码如下:private void toolStripButton1_Click(object sender, EventArgs e){string P_str_sql = " {tb_01.Sex} like '" + toolStripComboBox1.Text.Trim() + "'";ReportDocument reportDocument = new ReportDocument();string P_str_creportPath = Application.StartupPath.Substring(0, Application.StartupPath.Substring(0,Application.StartupPath.LastIndexOf("")).LastIndexOf(""));P_str_creportPath += "CrystalReport1.rpt";reportDocument.Load(P_str_creportPath);reportDocument.DataDefinition.RecordSelectionFormula = P_str_sql;crystalReportViewer1.ReportSource = reportDocument;}完整程序代码如下:★ ★★★★CrystalReport1.cs类文件完整程序代码★★★★★//------------------------------------------------------------------------------// // 此代码由工具生成。// 运行库版本:2.0.50727.42//// 对此文件的更改可能会导致不正确的行为,并且如果// 重新生成代码,这些更改将会丢失。// //------------------------------------------------------------------------------namespace _8_01 {using System;using System.ComponentModel;using CrystalDecisions.Shared;using CrystalDecisions.ReportSource;using CrystalDecisions.CrystalReports.Engine;public class CrystalReport1 : ReportClass {public CrystalReport1() {}public override string ResourceName {get {return "CrystalReport1.rpt";}set {// Do nothing}}[Browsable(false)][DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)]public CrystalDecisions.CrystalReports.Engine.Section Section1 {get {return this.ReportDefinition.Sections[0];}}[Browsable(false)][DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)]public CrystalDecisions.CrystalReports.Engine.Section Section2 {get {return this.ReportDefinition.Sections[1];}}[Browsable(false)][DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)]public CrystalDecisions.CrystalReports.Engine.Section Section3 {get {return this.ReportDefinition.Sections[2];}}[Browsable(false)][DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)]public CrystalDecisions.CrystalReports.Engine.Section Section4 {get {return this.ReportDefinition.Sections[3];}}[Browsable(false)][DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)]public CrystalDecisions.CrystalReports.Engine.Section Section5 {get {return this.ReportDefinition.Sections[4];}}}[System.Drawing.ToolboxBitmapAttribute(typeof(CrystalDecisions.Shared.ExportOptions), "report.bmp")]public class CachedCrystalReport1 : Component, ICachedReport {
赞