Winform RDLC报表(数据库连接、报表函数使用、动态表头)

文章目录

  • NuGet安装库
  • 数据库连接
  • 报表设计
    • 报表引用
    • 添加报表
  • 数据集设计
    • 方法一手动添加
    • 方法二——连接数据库添加
  • 关联报表与数据集
    • 表格数据与数据集数据设计
      • 表格格式、字体设计
      • 报表数据字段绑定
  • Winform 使用报表控件
  • 数据库填充数据集
    • 从数据库获取与数据源相同字段的数据
  • 动态表头设计
    • 添加表头参数
    • 绑定表头参数
    • 表头数据添加与绑定
  • 表格常用函数
    • 行数自增长
    • 表格颜色
      • 表格颜色表达式
  • 行、列可见性

NuGet安装库

报表相关
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第1张图片
数据库相关
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第2张图片
安装完后
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第3张图片

数据库连接

其中Sql执行语句是选择报表所需要的字段。

 /// 
        /// 数据库连接与SQL语句执行
        /// 
        /// 连接语句
        /// Sql执行语句
        /// 
        public DataSet ConnReadSql(string connectionString,string strSql)
        {
            DataSet dataSet = new DataSet(); 
            using (SqlConnection connection = new SqlConnection(connectionString))
            {               
                try
                {
                    connection.Open();
                    SqlDataAdapter command = new SqlDataAdapter(strSql, connection);
                    command.Fill(dataSet, "ds");
                }
                catch (System.Data.SqlClient.SqlException ex)
                {
                    throw new Exception(ex.Message);
                }
               
            }
            return dataSet;
        }

报表设计

报表引用

扩展——联机
搜索RDLC
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第4张图片
如果下载太慢,点击"详细信息",在浏览器下载,或者更快的可以在迅雷下载,下载完成后关闭所有VS进程,进行安装包的安装。
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第5张图片

添加报表

右击项目——添加——新建项——报表
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第6张图片

数据集设计

Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第7张图片

方法一手动添加

在工具箱中找到数据集工具,拉一个DataTable到数据集
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第8张图片
“Ctrl+L”快捷创建DataTable行数,添加字段需要与数据库获取字段一致。
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第9张图片

方法二——连接数据库添加

在工具箱中找到数据集工具,拉一个DataTable到数据集,会弹出来配置向导。
点击新建连接
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第10张图片
输入服务器后,在下拉框中选择所需数据库,点击测试连接,显示成功后,点击确定。
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第11张图片
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第12张图片
点击下一步
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第13张图片
点击确定
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第14张图片
点击下一步
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第15张图片
这里直接点击“查询生成器”
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第16张图片
点击添加
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第17张图片
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第18张图片
点击完成
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第19张图片

http://t.csdnimg.cn/cks1x

Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第20张图片
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第21张图片

关联报表与数据集

在工具栏的报表项目下面拉取表
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第22张图片
之后会出现报表数据窗口,如果没有,快捷键ctr +alt+D
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第23张图片
点击数据集——添加数据集
1.名称是后续代码要用到的参数名字
2.点击该项目设计的数据源,下方会出现对应可用数据集,选择需要的数据集,点击确定。
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第24张图片

表格数据与数据集数据设计

表格格式、字体设计

右击表格——文本框属性

  1. 设置字体——微软雅黑(否则后期中文会出现乱码)
    Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第25张图片

  2. 根据需求设置对其样式
    Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第26张图片
    3.报表表格格式在数量众多的时候可以设计一个,后面的进行复制粘贴也会把格式带过去,或者在插入列或者插入行等操作时,沿用最近一个的所有格式

报表数据字段绑定

右击表格框——表达式——点击字段(如果字段没有,尝试刷新数据集之后重新点开字段)——双击值列表下的字段

Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第27张图片Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第28张图片

Winform 使用报表控件

点击工具箱拉去ReportViewer 到窗体显示报表位置,本文该控件名称为reportViewer2

Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第29张图片

数据库填充数据集

从数据库获取与数据源相同字段的数据

Sql语句执行函数

         /// 
        /// 数据库连接与SQL语句执行
        /// 
        /// 连接语句
        /// Sql执行语句
        /// 
        public DataSet ConnReadSql(string connectionString,string strSql)
        {
            DataSet dataSet = new DataSet(); 
            using (SqlConnection connection = new SqlConnection(connectionString))
            {               
                try
                {
                    connection.Open();
                    SqlDataAdapter command = new SqlDataAdapter(strSql, connection);
                    command.Fill(dataSet, "ds");
                }
                catch (System.Data.SqlClient.SqlException ex)
                {
                    throw new Exception(ex.Message);
                }
               
            }
            return dataSet;
        }

数据库填充数据集

 private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                string connectionString = "Server=.;Integrated Security=SSPI;Database=BRL_measurement_DB";
                string sql = "SELECT dateTime,normName,param1,param2,param3  FROM View_Data_Qualification";
                DataSet dataSet = new DataSet();
                dataSet = ConnReadSql(connectionString, sql);





                ///---向报表绑定数据源
                this.reportViewer2.ProcessingMode = ProcessingMode.Local;
                this.reportViewer2.LocalReport.DataSources.Add(new ReportDataSource("DataSet1001", dataSet.Tables[0]));
                ///---向报表查看器指定显示的报表
                this.reportViewer2.LocalReport.ReportPath = @"..\..\Report1.rdlc";
                this.reportViewer2.LocalReport.Refresh();
                this.reportViewer2.RefreshReport();
            }
            catch (Exception er)
            {

                MessageBox.Show(er.Message.ToString());
            }
        }

Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第30张图片

动态表头设计

项目中如果表头需要中英文转换等需求,可以考虑动态表头设计

添加表头参数

打开报表数据——点击参数——添加参数
注意:该部位添加的参数需要与程序中参数名相同
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第31张图片

绑定表头参数

右击表格框——参数——双击索要显示值——表达式正确——确定
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第32张图片

表头数据添加与绑定

Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第33张图片

 private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                string connectionString = "Server=.;Integrated Security=SSPI;Database=BRL_measurement_DB";
                string sql = "SELECT dateTime,normName,param1,param2,param3  FROM View_Data_Qualification";
                DataSet dataSet = new DataSet();
                dataSet = ConnReadSql(connectionString, sql);

                Random random = new Random();
                int J = random.Next(18,21);
                //动态表头设计
                ReportParameter[] parameters=new ReportParameter[3];
                if (J%2==0)
                {
                    parameters[0] = new ReportParameter("ReportParameter1", "序号");
                    parameters[1] = new ReportParameter("ReportParameter2", "规格");
                    parameters[2] = new ReportParameter("ReportParameter3", "数据1");
                }
                else
                {
                    parameters[0] = new ReportParameter("ReportParameter1", "Num");
                    parameters[1] = new ReportParameter("ReportParameter2", "Specifications");
                    parameters[2] = new ReportParameter("ReportParameter3", "Data1");
                }
              
                ///---向报表绑定数据源
                this.reportViewer2.ProcessingMode = ProcessingMode.Local;
                this.reportViewer2.LocalReport.DataSources.Add(new ReportDataSource("DataSet1001", dataSet.Tables[0]));
                ///---向报表查看器指定显示的报表
                this.reportViewer2.LocalReport.ReportPath = @"..\..\Report1.rdlc";

                //动态表头设置
                this.reportViewer2.LocalReport.SetParameters(parameters);
                this.reportViewer2.LocalReport.Refresh();
                this.reportViewer2.RefreshReport();
            }
            catch (Exception er)
            {

                MessageBox.Show(er.Message.ToString());
            }
        }

Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第34张图片
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第35张图片

表格常用函数

行数自增长

=RowNumber(Nothing)
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第36张图片
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第37张图片

表格颜色

选中一行更改颜色
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第38张图片

表格颜色表达式

点击文本框属性——填充——点击函数Fx——点击函数IIF——选择要判断的字段——赋值颜色。
该函数表明:如果param1值为真则为第一个参数,为假则为第二个参数,为空不做判断
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第39张图片
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第40张图片

行、列可见性

单击一行或一列,选择属性——可见性——基于表达式显示或隐藏——点击Fx
=IIf(IsNothing(Fields!param3.Value),true,false)
Winform RDLC报表(数据库连接、报表函数使用、动态表头)_第41张图片

你可能感兴趣的:(Winform,c#基础,数据库,oracle)