Asp.net 自带报表的使用详解

  1:新建報表所需的數據源DataSet.cs

  

复制代码 代码如下:

  using System;

  using System.Collections.Generic;

  using System.Linq;

  using System.Web;

  using System.Data;

  namespace ********

  {

  public class DataSet

  {

  public DataTable CreatDataSet()

  {

  DataTable dt = new DataTable();

  dt.Columns.Add("A");

  dt.Columns.Add("B");

  dt.Columns.Add("C");

  return dt;

  }

  }

  }

  指定所需要綁定的Table的列,返回dataTable 類,CreatDataSet方法名稱隨便起,也可以在一個類裏面定義多個方法(不同數據源)

  2:設計報表

Asp.net 自带报表的使用详解

  報表設計這裡就不涉及了

  3:把第一步新建的數據源加到報表裏面綁定

  注意:這裡需要先引用 Interop.VBA.dll 才可以把新建的CS文件作為數據源導入

Asp.net 自带报表的使用详解

  把數據源導入后綁定即可

  4:直接把報表導出為PDF,Excel等格式

  

复制代码 代码如下:

  ReportViewer viewer = new ReportViewer();

  viewer.ProcessingMode = ProcessingMode.Local;

  viewer.LocalReport.ReportEmbeddedResource = "***.Page.Report.Report1.rdlc";

  ReportDataSource rds_1 = new ReportDataSource("DataSet1", dtReport);//DataSet1為報表裏面的數據源名稱

  viewer.LocalReport.DataSources.Add(rds_1);

  ReportParameter rp1 = new ReportParameter("參數1","參數1的值" );//給參數賦值

  ReportParameter rp2 = new ReportParameter("參數2","參數2的值" );

  viewer.LocalReport.SetParameters(new ReportParameter[] {rp1, rp2 });

  Warning[] warnings;

  string[] streamIds;

  string mimeType = string.Empty;

  string encoding = string.Empty;

  string extension = string.Empty;

  byte[] bytes = viewer.LocalReport.Render("Excel", null, out mimeType, out encoding, out extension, out streamIds, out warnings);

  //Excel ,PDF ,Word 等格式

  // Now that you have all the bytes representing the PDF report, buffer it and send it to the client.

  Response.Buffer = true;

  Response.Clear();

  Response.ContentType = mimeType;

  Response.AddHeader("content-disposition", "attachment; filename=1_" + DateTime.Now.ToString("yyyyMMddhhssmm") + "" + "." + extension);

  Response.BinaryWrite(bytes); // create the file

  Response.Flush(); // send it to the client to download

  5:在頁面引用報表(rpResult為報表控件)

  

复制代码 代码如下:

  DataTable dt = new DataTable();//自己拼出數據源就可以

  ReportDataSource repDataSource = new ReportDataSource("DataSet1", dt);

  //*設置報表參數,并顯示

  this.rpResut.LocalReport.ReportEmbeddedResource = "***.Page.Report.Report1.rdlc"";

  this.rpResut.LocalReport.DataSources.Clear();

  this.rpResut.LocalReport.DataSources.Add(repDataSource);

  ReportParameter rp1 = new ReportParameter("參數1","參數1的值" );//給參數賦值

  ReportParameter rp2 = new ReportParameter("參數2","參數2的值" );

  this.rpResut.LocalReport.SetParameters(new ReportParameter[] {rp1, rp2 });

  this.rpResut.DataBind();

  this.rpResut.LocalReport.Refresh();

  至此,報表的產出和顯示都OK了,如果需要更深入的了解,請查看其它文章