利用CrystalReport与C#生成报表(vs2010+sql2008)
请看图1,这份报表有多复杂?猜猜它需要多少时间完成?就复杂而言,它只是一份简单的、从Share>Student (SQL Server 2008)中提取出来的报表;就时间而言,相信不会花你很多时间吧。
开始之前说明:VS2010本身是没有CrystalReport。要进行下载安装。安装成功之后,就可以继续完成下面的步骤。
下面,我们开始创建报表,首先要编写一个生成报表的C#小程序。
第一步:创建一个Windows应用程序
选择文件菜单,新建-工程,从工程类型中选择C#,从右方对话框中选择Crystal Reports应用程序;
接着点击确定,出现下图所示:
选择作为空白报表,点击确定。
第二步:为工程添加数据集(DataSet)
数据集是伴随报表查看器而来的,它保存并提供从数据源而来的原始数据。
请依照如下步骤添加数据集:
1、从解决方案资源浏览器中选择添加-新建项-数据集,并单击添加按钮完成。如图所示:
2、将你所要输出的数据表添加到数据集(DataSet1)中.
以下为添加数据表到数据集(DataSet1)中:
首先打开VS2010的服务器资源管理器:找到你所要添加的表(我这里的表是数据库:Share的表:Student),
然后鼠标点击该表Student不放,拖动到右边的DataSet1.xsd.。结果如下图:
第三步:设计报表
1、 双击解决方案资源管理器的CrystalReport1.xsd:
首先在报表头添加报表标题(我这里标题是学生基本信息一览表),在页脚添加第N页共M页,打印时间。(这些可用特殊字段直接生成)。
2、在字段资源管理器右击数据库字段的数据库专家,如下图所示:
3、展开字段资源管理器的节点,如图:
4、将所要输出的Student的StuID、Name、Sex、Class、Telephone、Location依次拖到报表的详细资料处。
第四步:编写赋予报表生机的C#代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Windows.Forms;
using System.Data.SqlClient;
namespace CrystalReportsApplication1
{
public partial class Form1 : Form
{
publicForm1()
{
InitializeComponent();
}
privatevoid Form1_Load(objectsender,EventArgs e)
{
DataSet1 ds =new DataSet1();
using (SqlConnectioncon =new SqlConnection(“这里是连接字符串,自己自行添加自己实际的连接字符串”))
{
SqlDataAdapter da =new SqlDataAdapter("select * from Student;", con);
da.TableMappings.Add("Table","Student");
da.Fill(ds);
CrystalReport1 cr1 =new CrystalReport1();
cr1.SetDataSource(ds);
crystalReportViewer1.ReportSource = cr1;
}
}
}
}
第五步:修改app.config配置文件
修改后的代码如下:
xmlversion="1.0"encoding="utf-8" ?>
<configuration>
<configSections>
configSections>
<startupuseLegacyV2RuntimeActivationPolicy="true"> //主要添加的部分
<supportedRuntimeversion="v4.0"sku=".NETFramework,Version=v4.0"/>
startup>
<connectionStrings>
<addname="CrystalReportsApplication1.Properties.Settings.ShareConnectionString"
connectionString="Data Source=zyjun-PC;Initial Catalog=Share;Persist SecurityInfo=True;User ID=sa;Password=123456"
providerName="System.Data.SqlClient"/>
connectionStrings>
configuration>
第六步:调试运行。效果图如下:
总结:分享快乐!