水晶报表是一个功能强大的报表工具,现在已经被Microsoft Visual Studio 2005集成在一起
    水晶报表在应用时分两种方法,分别是拉模式(PULL)、推模式(PUSH)。拉模式:在水晶报表生成时的数据源是从水晶报表文件中的SQL语句从数据库中提取的,在编程时不用重写SQL语句,但要加上登录信息(具体方法,后面介绍)。推模式:在水晶报表生成时的数据源,是用编程时重写水晶报表中SQL语句而生成的dataset对像。也就是说,推模式是用dataset组装水晶报表。
    水晶报表组件介绍。水晶报表在VS2005中有两种组件,在WEB项目是分别是CrystalReportSource,CrystalReportViewer。在FORM项目里是分别是crystalReport,CrystalReportViewer。
CrystalReportSource,crystalReport是水晶报表的数据提供者;CrystalReportViewer是水晶报表的浏览器。另外还要介绍一下水晶报表的文件是以.rpt为扩展名的文件,该文件可以用VS2005生成。

1。创建水晶报表
    a.新建一个winform应用程序,然后“工程”-〉“添加新项”,在弹出对话框中选择“crystal报表”,然后改个名MyCrystal.rpt,单击添加按钮。
    b.在“crystalreports库”对话框选择“使用报表向导”,并选择“标准”的样式,“确定”。
    c.在“标准报表创建向导”对话框指定报表数据源,即其架构,“创建新连接”-〉“ole db(ado)”
    d.配置ole db(ado)。“提供程序”选择provider for sql server,然后选择服务器,登录配置,选择数据库
    e.选择数据库中的表,并选择需要显示的列,完毕后进入vs2005的报表编辑器,自主进行美化后over...
2。添加报表查看器
    在winform窗体中添加crystalreportviewer
3。在窗体的load事件处理程序中加入如下代码:
 1string sql = "Select T1, T2, T3 FROM T where T1=''a''";
 2string DBConfig_sql = @"Data Source=SYWZSWL\SQLEXPRESS;Initial Catalog=Test;User ID=sa;Password=123456";
 3DataSet ds = new DataSet();
 4SqlConnection sqlCon = new SqlConnection(DBConfig_sql);
 5SqlCommand sqlCmd = new SqlCommand(sql, sqlCon);
 6SqlDataAdapter sqlAd = new SqlDataAdapter();
 7sqlAd.SelectCommand = sqlCmd;
 8sqlAd.Fill(ds, "sql");
 9ReportDocument reDoc=new ReportDocument();
10reDoc.Load(Application.StartupPath + "MyCrystal.rpt");
11reDoc.SetDataSource(ds.Tables["sql"]);
12//{?}中的参数可以不用赋值,即使赋了值也不起作用。
13this.crystalReportViewer1.ReportSource = reDoc;
14
部分引用自:
http://hi.baidu.com/ysusoft/blog/item/5d06aa2705d5d806918f9d45.html