Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)qq
published 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 {


If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759