下面是 ".NET 水晶报表使用代码" 的完整攻略:
1. 安装Crystal Reports
首先需要安装 Crystal Reports,这里简单介绍一下安装步骤:
- 在 Visual Studio 中,打开 "工具" -> "扩展和更新"。
- 在 "扩展和更新" 窗口中,选择 "联机" 选项卡。
- 搜索 "Crystal Reports",并安装最新的版本。
2. 创建数据源
在 Visual Studio 中创建一个新项目,然后创建一个数据库并填充数据,以便在报表中使用。下面以一个学生信息管理系统为例:
CREATE TABLE Students (
Id int NOT NULL,
Name varchar(50) NOT NULL,
Age int NOT NULL,
PRIMARY KEY (Id)
);
INSERT INTO Students (Id, Name, Age)
VALUES (1, '小明', 18),
(2, '小红', 19),
(3, '小刚', 20);
3. 创建报表
接下来创建一个 Crystal Reports 报表文件,步骤如下:
- 在 Visual Studio 中,右键单击项目 -> 添加 -> 新建项。
- 在 "添加新项" 窗口中选择 "Crystal Reports"。
- 选择 "示例报表" 模板并按照向导进行操作。在数据源选项卡中,选择之前创建的数据源。
4. 编写代码
在报表文件中,右键单击 "字段" 区域中的任何一个字段,并选择 "编辑字段"。在表达式编辑器中,可以看到相应的字段名,我们可以在代码中使用它们。下面是两个使用 ".NET 水晶报表" 的代码示例:
示例一:打印学生信息报表
using System;
using System.Data;
using System.Data.SqlClient;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
namespace CrystalReportsDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnShowReport_Click(object sender, EventArgs e)
{
// 连接数据库
string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=StudentsDB;Integrated Security=True";
SqlConnection connection = new SqlConnection(connectionString);
// 查询数据
string query = "SELECT * FROM Students";
SqlDataAdapter adapter = new SqlDataAdapter(query, connection);
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);
// 加载报表
ReportDocument report = new ReportDocument();
report.Load(@"C:\Reports\StudentInfo.rpt");
// 设置报表数据
report.SetDataSource(dataTable);
// 显示报表
crystalReportViewer1.ReportSource = report;
crystalReportViewer1.Refresh();
}
}
}
示例二:设置报表参数
using System;
using System.Data;
using System.Data.SqlClient;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
namespace CrystalReportsDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnShowReport_Click(object sender, EventArgs e)
{
// 连接数据库
string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=StudentsDB;Integrated Security=True";
SqlConnection connection = new SqlConnection(connectionString);
// 查询数据
string query = "SELECT * FROM Students WHERE Age < @age";
SqlDataAdapter adapter = new SqlDataAdapter(query, connection);
adapter.SelectCommand.Parameters.AddWithValue("@age", txtAge.Text);
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);
// 加载报表
ReportDocument report = new ReportDocument();
report.Load(@"C:\Reports\StudentInfo.rpt");
// 设置报表参数
ParameterField paramField = new ParameterField();
ParameterFields paramFields = new ParameterFields();
ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
paramField.ParameterFieldName = "Age";
paramDiscreteValue.Value = txtAge.Text;
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
crystalReportViewer1.ParameterFieldInfo = paramFields;
// 设置报表数据
report.SetDataSource(dataTable);
// 显示报表
crystalReportViewer1.ReportSource = report;
crystalReportViewer1.Refresh();
}
}
}
这就是 ".NET 水晶报表使用代码" 的完整攻略,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:.NET 水晶报表使用代码 - Python技术站