您的位置:首页 > 编程语言 > C#

C#中如何使用水晶报表

2017-08-09 21:55 435 查看

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;
}
}
}


运行程序,点击显示报表按钮,运行结果如下:



至此,示例完毕。看完之后是不是很快学会了呢?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: