1:打开VisualStudio2008,新建一个Windows窗体应用程序项目,名称可以自定义,选择项目的保存路径,然后确定

VisualStudio2008+水晶报表的使用

刚新建好的窗体应用程序:

VisualStudio2008+水晶报表的使用

 

 

2. 把准备好的水晶报表插件复制到项目中的bin文件夹(不复制也可以,个人习惯),然后在程序中引用这些控件

 VisualStudio2008+水晶报表的使用

VisualStudio2008+水晶报表的使用

VisualStudio2008+水晶报表的使用

 

VisualStudio2008+水晶报表的使用

(注意,添加的控件不是每个都用得上,但我这里全部引用了)

 3.在程序中的工具栏中的报表栏添加选择项

VisualStudio2008+水晶报表的使用

VisualStudio2008+水晶报表的使用VisualStudio2008+水晶报表的使用

以上就是添加水晶报表的插件到VS2008中,下面就开始使用水晶报表

 

4.在Form1窗口放一个按钮,命名为”生成报表”,主要是用来点击后,就弹出一个报表的窗口。那么再需新建一个报表的窗口Form2.

 

VisualStudio2008+水晶报表的使用

VisualStudio2008+水晶报表的使用

VisualStudio2008+水晶报表的使用

VisualStudio2008+水晶报表的使用

 

5. 打开Form2窗口,VisualStudio2008+水晶报表的使用把这个拖进窗口里。

 

 VisualStudio2008+水晶报表的使用

拖进后,窗口是这样的:

VisualStudio2008+水晶报表的使用

6. 创建水晶报表,在窗口中鼠标右键弹出选项框,选择创建新Crystal报表

VisualStudio2008+水晶报表的使用

我这里只是演示,就不重新命名报表名称了,大家可以根据项目来命名

VisualStudio2008+水晶报表的使用

VisualStudio2008+水晶报表的使用

VisualStudio2008+水晶报表的使用

下面我参考一张报告来设计这个报表,但这个报表有点复杂,我就做简化一点,取其中部分内容显示到报表中,主要是以实现功能为目的。

VisualStudio2008+水晶报表的使用

7.在报表头输入文字

VisualStudio2008+水晶报表的使用

VisualStudio2008+水晶报表的使用

8. 插入线条,把Line 工具拖进入,按需要调整

VisualStudio2008+水晶报表的使用

VisualStudio2008+水晶报表的使用

现在预览看看

VisualStudio2008+水晶报表的使用

VisualStudio2008+水晶报表的使用

VisualStudio2008+水晶报表的使用

VisualStudio2008+水晶报表的使用

VisualStudio2008+水晶报表的使用

VisualStudio2008+水晶报表的使用

以上就是简单的显示报表的功能,那么一般情况下,都是需要连接数据库,从数据库查询的数据展示到报表中的。那么下面这样的功能

9. 在数据库中新建一个数据库Test,新建一个Test表,根据需要建立字段,我这里简单建几个字段。

数据库的Test表的字段如下:

VisualStudio2008+水晶报表的使用

VisualStudio2008+水晶报表的使用

 

在VS2008中需要添加一个叫APP.Config的“应用程序配置文件”,如果是高版本的,默认是添加好的

VisualStudio2008+水晶报表的使用

App.config的代码如下

VisualStudio2008+水晶报表的使用

 

添加一个类SqlHelper的类,用于做连接数据库做增删改查的工具

VisualStudio2008+水晶报表的使用

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 水晶报表
{
    class SqlHelper
    {
        //获取连接字符串
        private static readonly string connstr = ConfigurationManager.ConnectionStrings["connectstr"].ConnectionString;
        /// <summary>
        /// 创建数据库连接
        /// </summary>
        /// <returns>返回一个连接对象conn</returns>
        public static SqlConnection CreateConnection()
        {
            SqlConnection conn = new SqlConnection(connstr);
            conn.Open();
            return conn;
        }
        /// <summary>
        /// 该方法主要用于增删改操作
        /// </summary>
        /// <param name="conn">连接对象</param>
        /// <param name="sql">sql语句</param>
        /// <param name="parameters">sql语句中的参数</param>
        /// <returns>受影响的行数</returns>
        public static int ExecuteNonQuery(SqlConnection conn, string sql, params SqlParameter[] parameters)
        {
            using (SqlCommand cmd = conn.CreateCommand())
            {
                cmd.CommandText = sql;
                cmd.Parameters.AddRange(parameters);
                return cmd.ExecuteNonQuery();
            }
        }
        /// <summary>
        /// 该方法主要用于增删改操作
        /// </summary>
        /// <param name="sql">sql</param>
        /// <param name="parameters">语句中的参数</param>
        /// <returns>受影响的行数</returns>
        public static int ExecuteNonQuery(string sql, params SqlParameter[] parameters)
        {
            using (SqlConnection conn = CreateConnection())
            {
                return ExecuteNonQuery(conn, sql, parameters);
            }
        }
        /// <summary>
        /// 首行首列查询
        /// </summary>
        /// <param name="conn">连接对象</param>
        /// <param name="sql">sql语句</param>
        /// <param name="parameters">sql语句中的参数</param>
        /// <returns>返回的是首行首列--object类型</returns>
        public static object ExecuteScalar(SqlConnection conn, string sql, params SqlParameter[] parameters)
        {
            using (SqlCommand cmd = conn.CreateCommand())
            {
                cmd.CommandText = sql;
                cmd.Parameters.AddRange(parameters);
                return cmd.ExecuteScalar();
            }
        }
        /// <summary>
        ///  首行首列查询
        /// </summary>
        /// <param name="sql">sql语句</param>
        /// <param name="parameters">sql语句中的参数</param>
        /// <returns>返回的是首行首列--object类型</returns>
        public static object ExecuteScalar(string sql, params SqlParameter[] parameters)
        {
            using (SqlConnection conn = CreateConnection())
            {
                return ExecuteScalar(conn, sql, parameters);
            }
        }

        /// <summary>
        /// 该方法用来查询
        /// </summary>
        /// <param name="conn">连接对象</param>
        /// <param name="sql">sql语句</param>
        /// <param name="parameters">sql语句中的参数</param>
        /// <returns>返回的是DataTable</returns>
        public static DataTable ExecuteQuery(SqlConnection conn, string sql, params SqlParameter[] parameters)
        {
            DataTable table = new DataTable();
            using (SqlCommand cmd = conn.CreateCommand())
            {
                cmd.CommandText = sql;
                cmd.Parameters.AddRange(parameters);
                using (SqlDataReader reader = cmd.ExecuteReader())
                {
                    table.Load(reader);
                }
            }
            return table;
        }

        /// <summary>
        /// 该方法用来查询
        /// </summary>
        /// <param name="sql">sql语句</param>
        /// <param name="parameters">sql语句中的参数</param>
        /// <returns>返回的是DataTable</returns>
        public static DataTable ExecuteQuery(string sql, params SqlParameter[] parameters)
        {
            using (SqlConnection conn = CreateConnection())
            {
                return ExecuteQuery(conn, sql, parameters);
            }
        }
    }
}
SqlHelper代码

相关文章: