首页 » 技术分享 » C# 利用ReportViewer生成报表

C# 利用ReportViewer生成报表

 

涉及知识点:

  • ReportViewer :位于Microsoft.Reporting.WinForms命名空间, 主要用于报表的显示
  • Report:报表,以rdlc结尾的文件,可视化设计报表模板。
  • 报表数据:内置字段,参数,图像,数据集(本报表主要使用参数,和数据集)
  • ReportParameter:使用名称和值实例化新的报表参数
  • ReportDataSource:报表的数据源与DataTable对象联系起来

效果图

如下:

核心代码

/// <summary>
        /// 设置报表
        /// </summary>
        private void SetReport()
        {
            //第一步:清除之前的数据
            this.rptView.LocalReport.DataSources.Clear();
            //第二步:指定报表路径
            this.rptView.LocalReport.ReportPath = "Report2.rdlc";
            //第三步:构造新的DataTable
            DataTable dt = new DataTable("DataTable1");
            dt.Columns.Add("Name");
            dt.Columns.Add("Score");
            dt.Columns.Add("Id");
            dt.Rows.Add(new object[] { "语文", 80, "Y0001" });
            dt.Rows.Add(new object[] { "数学", 75, "S0001" });
            dt.Rows.Add(new object[] { "英文", 96, "E0001" });
            //名称不能写错,和报表中的数据集名称一致
            ReportDataSource rdsItem = new ReportDataSource("DataSet1", dt);
            //此处可以有多个数据源
            this.rptView.LocalReport.DataSources.Add(rdsItem);
            //第四步:构造参数
            List<ReportParameter> lstParameter = new List<ReportParameter>() {
                new ReportParameter("Title",this.txtTitle.Text),
                new ReportParameter("Id",this.txtId.Text),
                new ReportParameter("Name",this.txtName.Text),
                new ReportParameter("Age",this.txtAge.Text),
                new ReportParameter("Sex",this.txtSex.Text),
                new ReportParameter("Salary",this.txtSalary.Text),
                new ReportParameter("Depart",this.txtDepart.Text)
            };
            this.rptView.LocalReport.SetParameters(lstParameter);
            this.rptView.ZoomMode = ZoomMode.Percent;
            this.rptView.ZoomPercent = 100;
            //第五步:刷新报表
            this.rptView.RefreshReport();
        }

 

1.先创建一个本地的数据库,右键单击你的项目-->选择【Add】--->New Item--->Local database.创建数据库后,添加一个数据表T_student,添加一些数据。

2.右键---->【Add】--->New Item--->Dataset(命名为information.xsd),把刚才创建的表T_student直接拖到information.xsd的设计界面上。

3.右键---->【Add】---->New Item---> Report(命名为report.rdlc),在report.rdlc的界面上右键---->【insert】---->【table】,此时会出现一个配置窗口,第一个【Name】填写你添加的dataset的名称(information),Data source选项选择information.

4.然后到winform界面。添加ReportViewer控件

5.在Form.cs中编写代码:

 private void button2_Click(object sender, EventArgs e)
        {
            information ds1 = new information();
            informationTableAdapters.table11TableAdapter ap = new informationTableAdapters.table11TableAdapter();
            ap.Fill(ds1.table11);
            DataTable dt1 = new DataTable();
            dt1 = ds1.table11;

            this.reportViewer1.Reset();
            this.reportViewer1.LocalReport.DataSources.Clear();
            this.reportViewer1.LocalReport.ReportPath = @"E:\test code\水晶报表\水晶报表\report1.rdlc";
            ReportDataSource rds = new ReportDataSource("information", dt1); //ReportDataSource数据源的第一个参数必须与你添加的dataset的名字相同
            this.reportViewer1.LocalReport.DataSources.Add(rds);  //添加数据源
            this.reportViewer1.ZoomMode = ZoomMode.Percent;
            this.reportViewer1.RefreshReport();
        }

转载自原文链接, 如需删除请联系管理员。

原文链接:C# 利用ReportViewer生成报表,转载请注明来源!

0