C#中如何使用水晶报表
VS2010和VS2012需要安装SAP的组件才能使用水晶报表,SAP组件下载链接(网友杨明波提供)http://downloads.businessobjects.com/akdlm/cr4vs2010/CRforVS_13_0_5.exe
组件下载好之后进行安装,安装好之后打开VS2012/2010,新建一个winform窗口程序,示例如下:
点击视图–>工具箱,工具箱如图所示:
在报表设计中可以找到水晶报表(CrytalReportViewer和CrytalReportDocument)。我测试了VS2012和2010,在2012的工具箱中可以找到水晶报表,但在2010中找不到,可以进行如下操作,手动将水晶报表加到工具箱中,操作如下:
第一步右键点击解决方案–>属性,将目标框架改为如图所示:
第二步右键点击解决方案–>添加引用,如下图所示,选择CrystalDecisions.CrystalReports.Engine、CrystalDecisions.ReportSource、CrystalDecisions.Shared、CrystalDecisions.Web:
添加完引用后,结果如下图:
最后打开工具箱可看到:
至此,手动添加水晶报表到工具箱成功。
现在来示例如何在C#中使用水晶报表,实现的功能为:点击显示报表按钮,给报表赋值并弹出报表:
首先新建一个Winform窗口工程,命名为CristalReportTest,设计界面如下:
然后右键点击解决方案–>添加–>新建项,选择水晶报表,如下图:
给报表命名为CrystalReport1.rpt,添加文字内容和参数,设计报表如下:
在解决方案中新建一个窗口程序,命名为Form2 ,在该界面中点击工具箱,选择报表设计–>CrystalReportView,拖动到界面中,在水晶控件中右键–>选择Crystal报表,选中CrystalReport1.rpt,如下图:
现在开始写代码,如下:
Form1.cs:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace CristalReportTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.ShowDialog();
}
}
}
Form2.cs:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace CristalReportTest
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
CrystalReport1 rp = new CrystalReport1();
rp.SetParameterValue("StuNumber", "201011111111");
rp.SetParameterValue("StuName", "张三三三三");
crystalReportViewer1.ReportSource = rp;
}
}
}
运行程序,点击显示报表按钮,运行结果如下:
至此,示例完毕。看完之后是不是很快学会了呢?