Winform中怎么使用水晶报表?

如题所述

1.新建一个WinForm项目,项目->增加新项->选择Crystal 报表
2.使用报表向导->创建新连接->数据库文件->选择一个Access数据库db.mdb
3.选中一个表:Article添加到选定的表中,下一步
4.选择可用字段添加到要显示的字段中。不点下一步,直接点完成。
5.这样就创建了一个报表文件,为报表做一些美化。
试着添加一个文本对象,一个线条对象,一个线框对象,看一下效果。
5.新建一个窗体,拖一个CrystalReportViewer过来。
瞧瞧报表是什么模样,呵呵。
6.为窗体增加Load事件,添加如下代码。
private void FrmFirst_Load(object sender, EventArgs e)
{
string strPath = Application.StartupPath.Substring(0, Application.StartupPath.Substring(0, Application.StartupPath.LastIndexOf("\\")).LastIndexOf("\\"));
strPath += @"\crptFirst.rpt";
this.crystalReportViewer1.ReportSource = strPath;
}
7.运行看到的效果是,报表把数据库中的数据按你设计的样子显示出来,
并且提供:打印,导出,分页,搜索等功能。
8.查看运行效果之后,觉得数据库中的英文字段原样显示不太好,可以打开crptFirst.rpt然后双击那个字段修改。
修改后不能用回车,一回车就换到下一行,呵呵,我在这里迷惑了一下。也就是说标题那里可以是多行显示。
更改一下报表的颜色,修饰一下。
9.总结一下:
crystalReportViewer就相当于GridView是用来显示数据的,只不过不用来设计数据显示格式。
crystalReport就相当于DataSource兼数据显示设计,在这个控件里绑定数据设计数据显示格式

法二(摘录网友)﹕

水晶报表运行效果如下:

收起树形菜单

建立步骤:

1.添加DataSet1.xsd文件

建立数据

2.添加CrystalReport1.rpt文件

2.1 CrystalReport设计

3程序集

4.Form1.cs 代码段

--------------------------------------邪恶的分割线------------------------------------------------------

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using System.Data.SqlClient;

namespace WindowsApplicationCrystalReports
{
public partial class Form1 : Form
{
SqlConnection conn = new SqlConnection("server=.;database=Northwind;uid=sa;pwd=321456;");
DataSet1 myData = new DataSet1();
SqlDataAdapter da;

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
//
showReport();
}
private void showReport()
{
da = new SqlDataAdapter("SELECT * FROM Orders INNER JOIN [Order Details] ON Orders.OrderID =[Order Details].OrderID INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID", conn);
da.Fill(myData, "DataTable1");
//创建报表
CrystalReport1 cr = new CrystalReport1();
//设置报表的数据源
cr.SetDataSource(myData);
//设置报表视图的报表源
crystalReportViewer1.ReportSource = cr;
}
}
}
温馨提示:答案为网友推荐,仅供参考
相似回答