水晶报表导出PDF or Excel,并返回文件到用户的IE浏览器中

来源:互联网 发布:2016人才缺口it 编辑:程序博客网 时间:2024/05/10 16:20
水晶报表导出PDF or Excel,并返回文件到用户的IE浏览器中 
导读:
usingSystem;
usingSystem.Collections;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Web;
usingSystem.Web.SessionState;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.HtmlControls;
usingCrystalDecisions.Shared;
usingCrystalDecisions.CrystalReports.Engine;
namespaceMinKe.Library
{
//=========================================================
// File: WebForm1.aspx // Version:0.0
// Date: 2003-1-15
// Script Written by satan
//=========================================================
// Copyright (C) 2001,2002 www.LionSky.Net. All rights reserved.
// Web: http://www.Lionsky.net,http://www.Lionsky.net/MyWebSite/Index.Aspx
// Email: lion-a@sohu.com
//=========================================================
///<summary>
///WebForm1 的摘要说明。
///&lt;/summary&gt;
publicclassWebForm1 : System.Web.UI.Page
{
protectedCrystalDecisions.Web.CrystalReportViewer CrystalReportViewer1;
privateCrystalDecisions.CrystalReports.Engine.ReportDocument ReportDoc;
privateTableLogOnInfo logOnInfo;
privateDiskFileDestinationOptions FileOPS;
protectedSystem.Web.UI.WebControls.Button Button1;
privateExportOptions ExOPS;
publicWebForm1()
{
//
// TODO: 在此处添加构造函数逻辑
//
ReportDoc=newReportDocument();
logOnInfo=newTableLogOnInfo();
FileOPS=newDiskFileDestinationOptions();
}
///&lt;summary&gt;
///导出报表文件为PDF格式
///&lt;/summary&gt;
///&lt;param name="ReportFile"&gt;报表文件名称,调用时请使用Server.MapPath("报表文件.rpt")这样来给这个参数&lt;/param&gt;
///&lt;param name="ReportDataSource"&gt;报表文件所使用的数据源,是一个Dataset&lt;/param&gt;
///&lt;param name="PDFFileName"&gt;你要导成的目标文件名称,注意不要放在wwwroot等目录中,iis会不让你导出的&lt;/param&gt;
///&lt;returns&gt;bool成功返回true,失败返回false&lt;/returns&gt;
publicboolExportToPDF(stringReportFile,objectReportDataSource,stringPDFFileName)
{
try
{
ReportDoc.Load(ReportFile);
ReportDoc.SetDataSource(ReportDataSource);
FileOPS.DiskFileName=PDFFileName;
ExOPS=ReportDoc.ExportOptions;
ExOPS.DestinationOptions=FileOPS;
ExOPS.ExportDestinationType=CrystalDecisions.Shared.ExportDestinationType.DiskFile;
ExOPS.ExportFormatType=CrystalDecisions.Shared.ExportFormatType.PortableDocFormat;
ReportDoc.Export();
returntrue
}
catch
{
returnfalse
}
}
///&lt;summary&gt;
///导出报表文件到Excel格式
///&lt;/summary&gt;
///&lt;param name="ReportFile"&gt;报表文件名称,调用时请使用Server.MapPath("报表文件.rpt")这样来给这个参数&lt;/param&gt;
///&lt;param name="ReportDataSource"&gt;报表文件所使用的数据源,是一个Dataset&lt;/param&gt;
///&lt;param name="ExcelFileName"&gt;你要导成的目标文件名称,注意不要放在wwwroot等目录中,iis会不让你导出的&lt;/param&gt;
///&lt;returns&gt;成功返回true失败返回false&lt;/returns&gt;
publicboolExportToExcel(stringReportFile,objectReportDataSource,stringExcelFileName)
{
try
{
ReportDoc.Load(ReportFile);
ReportDoc.SetDataSource(ReportDataSource);
FileOPS.DiskFileName=ExcelFileName;
ExOPS=ReportDoc.ExportOptions;
ExOPS.DestinationOptions=FileOPS;
ExOPS.ExportDestinationType=CrystalDecisions.Shared.ExportDestinationType.DiskFile;
ExOPS.ExportFormatType=CrystalDecisions.Shared.ExportFormatType.Excel;
ReportDoc.Export();
returntrue
}
catch
{
returnfalse
}
}
///&lt;summary&gt;
///返回PDF文件到用户的IE浏览器中
///&lt;/summary&gt;
///&lt;param name="ReportFile"&gt;报表文件名称,调用时请使用Server.MapPath("报表文件.rpt")这样来给这个参数&lt;/param&gt;
///&lt;param name="ReportDataSource"&gt;报表文件所使用的数据源,是一个Dataset&lt;/param&gt;
///&lt;param name="page"&gt;用于显示PDF WebForm&lt;/param&gt;
///&lt;returns&gt;&lt;/returns&gt;
publicboolReturnPDF(stringReportFile,objectReportDataSource,System.Web.UI.Page page)
{
inttemp;
temp=System.Convert.ToInt32(System.DateTime.Now.Millisecond.ToString());
System.Random ra=newSystem.Random(temp);
intTmpNumber=ra.Next();
stringTmpPDFFileName="c://"+System.Convert.ToString(TmpNumber)+".pdf";
if(ExportToPDF(ReportFile,ReportDataSource,TmpPDFFileName)==true)
{
page.Response.ClearContent();
page.Response.ClearHeaders();
page.Response.ContentType="application/pdf";
page.Response.WriteFile(TmpPDFFileName);
page.Response.Flush();
page.Response.Close();
System.IO.File.Delete(TmpPDFFileName);
returntrue
}
else
{
returnfalse
}
}
///&lt;summary&gt;
///返回Excel文件到用户的IE浏览器中
///&lt;/summary&gt;
///&lt;param name="ReportFile"&gt;&lt;/param&gt;
///&lt;param name="ReportDataSource"&gt;&lt;/param&gt;
///&lt;param name="page"&gt;&lt;/param&gt;
///&lt;returns&gt;&lt;/returns&gt;
publicboolReturnExcel(stringReportFile,objectReportDataSource,System.Web.UI.Page page)
{
inttemp;
temp=System.Convert.ToInt32(System.DateTime.Now.Millisecond.ToString());
System.Random ra=newSystem.Random(temp);
intTmpNumber=ra.Next();
stringTmpExcelFileName="c://"+System.Convert.ToString(TmpNumber)+".xls";
if(ExportToExcel(ReportFile,ReportDataSource,TmpExcelFileName)==true)
{
page.Response.ClearContent();
page.Response.ClearHeaders();
page.Response.ContentType="application/xls";
page.Response.WriteFile(TmpExcelFileName);
page.Response.Flush();
page.Response.Close();
System.IO.File.Delete(TmpExcelFileName);
returntrue
}
else
{
returnfalse
}
}
privatevoidPage_Load(objectsender, System.EventArgs e)
{
}
#regionWeb Form Designer generated code
overrideprotectedvoidOnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
///&lt;summary&gt;
///设计器支持所需的方法 - 不要使用代码编辑器修改
///此方法的内容。
///&lt;/summary&gt;
privatevoidInitializeComponent()
{
this.Button1.Click += newSystem.EventHandler(this.Button1_Click);
this.Load += newSystem.EventHandler(this.Page_Load);
}
#endregion
privatevoidButton1_Click(objectsender, System.EventArgs e)
{
MinKe.Data.Db list = newMinKe.Data.Db();
//此处生成PDF文件,list.GetView方法返回一个查询后的DataView数据集
ExportToPDF(Server.MapPath("Report1.rpt"),list.GetView("Select G_B_ID,G_B_Class,G_B_Name,G_B_Sex,G_B_Address,G_B_A_Date,G_B_D_Date From G_Bury Where G_B_ID&lt;200","aa").Table,"c://test.pdf");
//此处返回PDF文件,到客户端的IE中,客户端必须要安装Acrobat才可浏览
ReturnPDF(Server.MapPath("Report1.rpt"),list.GetView("Select G_B_ID,G_B_Class,G_B_Name,G_B_Sex,G_B_Address,G_B_A_Date,G_B_D_Date From G_Bury Where G_B_ID&lt;200","aa").Table,this);
//------生成Excel并返回到IE中的方法和上面相同,分别调用ExportToExcel和ReturnExcel方法--------
}
}
}
本文转自
http://blog.5d.cn/vip/yiyo3/200706/414046.html
标签词:
param PDF文件 name summary IE浏览器 调用 ReportDataSource ReportFile returns 文件名称 
原创粉丝点击