水晶报表导出为pdf, word , excel 格式(已经测试过,实现了该功能)
using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine;
using System.IO;
using Ghy.Funds.FundsClassLibrary;
using System.Data.SqlClient;
namespace WebAppTest
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected CrystalDecisions.Web.CrystalReportViewer CrystalReportViewer1;
protected System.Web.UI.WebControls.DropDownList DropDownList1;
protected System.Web.UI.WebControls.Button Btn_Export;
protected System.Web.UI.WebControls.DropDownList DropDownList2;
protected System.Web.UI.WebControls.Button btn_Export2;
ReportDocument reportDoc=new ReportDocument();
//页面加载
//SqlConnection myconn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectString"]);
//SqlConnection myconn1 = new SqlConnection(ConfigurationSettings.AppSettings["ConnectString"]);
//读取web.config配置文件中的数据库连接字符串,并连接到指定的数据库
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
if (!Page.IsPostBack)
{
//测试的时候用绑定
reportDataBind();
}
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.btn_Export2.Click += new System.EventHandler(this.btn_Export2_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
//绑定数据源
private void reportDataBind()
{
SqlConnection myConn = new SqlConnection("server = 11.101.10.8; database =eProcessDB; uid = sa; pwd =admin@sa ");
string sql = "SELECT FUNDS_RPT_HQ.VKBUR, FUNDS_RPT_HQ.VKBUR_NAME, FUNDS_RPT_HQ.FORM_DATE, FUNDS_RPT_HQ.AMT_BEG, FUNDS_RPT_HQ.INGDS, FUNDS_RPT_HQ.INOTH, FUNDS_RPT_HQ.PAYHQ, FUNDS_RPT_HQ.PAYOTH, FUNDS_RPT_HQ.AMT_END, FUNDS_RPT_HQ.TOT_INGDS, FUNDS_RPT_HQ.TOT_PAYHQ, FUNDS_RPT_HQ.FEE_END FROM FUNDS_RPT_HQ WHERE FUNDS_RPT_HQ.FORM_DATE ='2007-05-09' " ;
myConn.Open();
SqlDataAdapter myComm = new SqlDataAdapter(sql, myConn);
DataSet dset1 = new DataSet();
myComm.Fill(dset1,"FUNDS_RPT_HQ");
myConn.Close();
string ls_rptPathName;
ls_rptPathName = Server.MapPath(".")+"\\Funds_Rpt_HQ.rpt";
reportDoc.Load(ls_rptPathName);
reportDoc.SetDataSource(dset1);
CrystalReportViewer1.ReportSource = reportDoc;
CrystalReportViewer1.DisplayGroupTree = false; //树视图是可见还是隐藏左边的空白显示的比较多的处理方法
}
private void btn_Export2_Click(object sender, System.EventArgs e)
{
reportDataBind();
string contenttype = "";
string ls_FileType;
ls_FileType = DropDownList2.SelectedValue;
string ExportPath;
string Fname;
ExportPath = Request.PhysicalApplicationPath + "Exported/";
if ( !Directory.Exists(ExportPath))
{
System.IO.Directory.CreateDirectory(Request.PhysicalApplicationPath + "Exported/");
}
Fname = "Funds_rpt_HQ";
CrystalDecisions.Shared.DiskFileDestinationOptions opts = new CrystalDecisions.Shared.DiskFileDestinationOptions();
//导出为磁盘文件
CrystalDecisions.Shared.ExportOptions myExportOptions = reportDoc.ExportOptions;
myExportOptions.DestinationOptions = opts;
myExportOptions.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile;
switch(DropDownList2.SelectedItem.Value)
{
case "PDF":
contenttype = "application/pdf";
myExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat;
break;
case "DOC":
Response.ContentType = "application/ms-excel";
myExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.WordForWindows;
break;
case "XLS":
contenttype = "application/vnd.ms-excel";
this.EnableViewState = false;
myExportOptions.ExportFormatType =CrystalDecisions.Shared.ExportFormatType.Excel;
break;
}
Fname = Fname +"." + DropDownList2.SelectedItem.Value;
opts.DiskFileName = ExportPath + Fname ;
//导出操作
reportDoc.Export();
CommonCode.JavaShowWindow("导出文件成功!");
}
}
}