1)
在工程项目中引用用于显示报表的组件
CrytalDecisions.CrystalReports.Engine
CrystalDecisions.ReportSource
CrystalDecisions.Shared
CrystalDecisions.Windows.Forms
2)
在用户界面上拖放一个Viewer 控件
3)
在代码中引用水晶报表命名空间
CrystalDecisions.CrystalReports.Engine
4)
使用 GBaseConnection 创建连接对象
5)
使用 GBaseCommand 创建命令对象
6)
使用 GBaseDataAdapter 创建适配器对象
7)
使用 ReportDocument 创建报表对象
8)
使用 DataSet 创建数据集对象
9)
建立命令对象与连接对象的关系
10) 设置命令对象的CommandText 属性,指明查询语句
11) 从数据源中获取数据后使用适配器对象填充到数据集
12) 使用报表对象加载world_report.rpt 文件
13) 设置报表对象的数据源为数据集对象
14) 设置Viewer 空间的报表源为报表对象
GBase 8a 程序员手册ADO.NET 篇
- 44 -
南大通用数据技术股份有限公司
15) 显示在界面上
C# 示例:
using CrystalDecisions.CrystalReports.Engine;
using System.Data;
using GBase.Data.GBaseClient;
ReportDocument gsReport = new ReportDocument();
DataSet gsData = new DataSet();
GBaseConnection conn;
GBaseCommand cmd;
GBaseDataAdapter gsAdapter;
conn = new GBaseConnection();
cmd = new GBaseCommand();
gsAdapter = new GBaseDataAdapter();
conn.ConnectionString = "server=127.0.0.1;uid=root;" +
"pwd=12345;database=test;";
try
{
cmd.CommandText = "SELECT city.name AS cityName,
city.population AS CityPopulation, " + "country.name,
country.population, country.continent " + "FROM country, city ORDER BY
country.continent, country.name";
cmd.Connection = conn;
gsAdapter.SelectCommand = cmd;
gsAdapter.Fill(gsData);
gsReport.Load(@".\world_report.rpt");
gsReport.SetDataSource(gsData);
gsViewer.ReportSource = gsReport;
GBase 8a 程序员手册ADO.NET 篇
南大通用数据技术股份有限公司
- 45 -
}
catch (GBaseException ex)
{
MessageBox.Show(ex.Message, "Report could not be created",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}