水晶报表导出pdf功能(完整的代码C#版)
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;
//引入水晶报表的两个DLL
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 WebForm2 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DropDownList DropDownList1;
protected CrystalDecisions.Web.CrystalReportViewer CrystalReportViewer1;
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
//reportDataBind();
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()
{
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.DataBind();
}
//导出文件操作
private void Btn_Export2_Click(object sender, System.EventArgs e)
{
try
{
reportDataBind();
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;
//导出为pdf格式
reportDoc.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat;
//目的路径
Fname = Fname +".PDF";
opts.DiskFileName = ExportPath + Fname ;
//导出操作
reportDoc.Export();
CommonCode.JavaShowWindow("导出文件成功!");
}
catch(Exception ex)
{
CommonCode.JavaShowWindow("导出文件失败!" + ex.Message.ToString().Substring(1,90));
return ;
}
}
}
}