.NET 水晶报表使用代码

下面是 ".NET 水晶报表使用代码" 的完整攻略:

1. 安装Crystal Reports

首先需要安装 Crystal Reports,这里简单介绍一下安装步骤:

  1. 在 Visual Studio 中,打开 "工具" -> "扩展和更新"。
  2. 在 "扩展和更新" 窗口中,选择 "联机" 选项卡。
  3. 搜索 "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 报表文件,步骤如下:

  1. 在 Visual Studio 中,右键单击项目 -> 添加 -> 新建项。
  2. 在 "添加新项" 窗口中选择 "Crystal Reports"。
  3. 选择 "示例报表" 模板并按照向导进行操作。在数据源选项卡中,选择之前创建的数据源。

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技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • C#利用KPM算法解决字符串匹配问题详解

    C#利用KPM算法解决字符串匹配问题详解 什么是KMP算法 KMP算法(即Knuth-Morris-Pratt算法)是由 Donald Knuth、Vaughan Pratt、James H. Morris 同学在1977年联合发表的一种字符串匹配算法,主要用于在一个长文本串(缀)内查找一个模式串(子串)的出现位置。 该算法的核心思想是“利用已知信息尽可能减…

    C# 2023年6月8日
    00
  • Aspose.Cells组件导出excel文件

    以下是”Aspose.Cells组件导出excel文件”的完整攻略: 1. Aspose.Cells组件简介 Aspose.Cells 是一款强大且灵活的 Excel 文件处理工具,它能帮助我们快速创建、读取、操作和导出 Excel 文件。Aspose.Cells 支持多种格式的 Excel 文件,包括 XLS、XLSX、XLSB、CSV 和 TXT 等格式…

    C# 2023年5月31日
    00
  • ASP.NET生成图形验证码的方法详解

    ASP.NET生成图形验证码的方法,可以通过以下步骤实现: 1. 引用命名空间 首先,在代码文件中引用命名空间: using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.IO; using System.Web; usin…

    C# 2023年5月31日
    00
  • JQuery打造PHP的AJAX表单提交实例

    以下是“JQuery打造PHP的AJAX表单提交实例”的完整攻略,包括什么是AJAX表单提交、如何使用JQuery实现AJAX表单提交以及两个示例。 什么是AJAX表单提交? AJAX表单提交是指使用AJAX技术将表单数据提交到服务器,而无需刷新整个页面。AJAX表单提交可以提高用户体验,减少页面刷新次数,提高网站性能。 以下是使用AJAX技术提交表单的示例…

    C# 2023年5月15日
    00
  • C#影院售票系统毕业设计(4)

    C#影院售票系统毕业设计(4)详细攻略: 需求分析与实现设计 在需求分析中,我们确定了本系统的主要功能:用户注册登录、电影列表、选座购票、订单管理、影院信息查询等。 接着,我们需要对这些功能进行实现设计,可以采用 MVC (Model-View-Controller)架构。 其中,Model负责数据处理、View负责用户界面,Controller负责用户交互…

    C# 2023年6月7日
    00
  • C#中backgroundWorker类的用法详解

    C#中BackgroundWorker类的用法详解 1.背景介绍 BackgroundWorker是一个简化多线程编程的组件,一般用来实现后台操作。相比于Thread类,BackgroundWorker更加易于使用,而且可以避免许多线程相关的问题。在BackgroundWorker中,通过DoWork事件处理程序处理计算任务,并把计算结果通过RunWorke…

    C# 2023年5月15日
    00
  • C#中截取字符串的的基本方法详解

    C#中截取字符串的基本方法详解 前言 C#中操作字符串是开发中必不可少的一项技能,对字符串截取更是至关重要。本文将详细介绍C#中截取字符串的基本方法,希望能对大家有所帮助。 Substring方法 C#中内置的字符串截取方法是Substring。它可以通过指定起始位置和截取长度来截取字符串。 下面是一个示例: string str = "Hello…

    C# 2023年6月8日
    00
  • SQL基础查询和LINQ集成化查询

    SQL基础查询和LINQ集成化查询完整攻略 SQL基础查询 SQL是一种用于管理关系型数据库的语言,用于从数据库中检索和管理数据。SQL查询是日常工作中最常见的SQL活动。以下是一个简单的SQL查询过程: 打开SQL编辑器,并连接到关系型数据库 粘贴或输入SQL查询语句 运行查询语句 解释结果 以下是一个具体的SQL查询示例,假设我们有一个名为“books”…

    C# 2023年6月1日
    00
合作推广
合作推广
分享本页
返回顶部