ExportOptions myExp = new ExportOptions(); if(DDLExportType.SelectedItem.Value==".doc")
{
myExp.ExportFormatType = ExportFormatType.WordForWindows;        //导出到Word格式
    
}
//myExp.ExportFormatType = ExportFormatType.Excel;                  //导出到Excel格式
else if(DDLExportType.SelectedItem.Value==".pdf")
{
myExp.ExportFormatType = ExportFormatType.PortableDocFormat;    //导出到Pdf格式
} //定义导出内容
ExportRequestContext myExpReq = new ExportRequestContext();
myExpReq.ExportInfo = myExp; //产生报表Stream
Stream myReportStream;
myReportStream = report.FormatEngine.ExportToStream(myExpReq);
Response.ClearHeaders();
Response.ClearContent();
             
if(DDLExportType.SelectedItem.Value==".doc")
{
Response.ContentType = "application/msword";
Response.AddHeader("Content-disposition","attachment; filename=" + DateTime.Now.ToString("yyyyMMddhhssmm") + ".doc");

}
else if(DDLExportType.SelectedItem.Value==".pdf")
{
Response.ContentType = "application/pdf";
Response.AddHeader("Content-disposition","attachment; filename=" + DateTime.Now.ToString("yyyyMMddhhssmm") + ".pdf");

}
byte[] myReportByte = new byte[myReportStream.Length];
myReportStream.Read( myReportByte,0,(int)myReportStream.Length);
Response.BinaryWrite( myReportByte );
Response.Flush();
Response.End();

解决方案 »

  1.   

    Dim i As Integer
            Dim FileName As String
            Dim CryReport As New ReportDocument        Dim LogOnInfo As New CrystalDecisions.Shared.TableLogOnInfo
            Dim Disoption As New CrystalDecisions.Shared.DiskFileDestinationOptions
            Dim ParaValues As New CrystalDecisions.Shared.ParameterValues
            Dim ParaDisValues As New CrystalDecisions.Shared.ParameterDiscreteValue        Try
                       CryReport.Load(Server.MapPath("../EF_Report/Print_Plastic.rpt"))
               
               With LogOnInfo.ConnectionInfo
                    .ServerName = "localhost"
                    .UserID = "id"
                    .Password = "psd"
                    .DatabaseName = "Database"
                End With        
                For i = 0 To CryReport.Database.Tables.Count - 1
                    CryReport.Database.Tables.Item(i).ApplyLogOnInfo(LogOnInfo)
                Next
                FileName = "C:\\" & Session.SessionID.ToString & ".pdf"
        
    CryReport.ExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat '导出PDF
    Cryreport.ExportOptions.ExportFormatType = ExportFormatType.WordForWindows '导出Word
                CryReport.ExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
                Disoption.DiskFileName = FileName
                CryReport.ExportOptions.DestinationOptions = Disoption
                CryReport.Export()            Response.ClearContent()
                Response.ClearHeaders()
               Response.ContentType = "applicaion/pdf"  '导出PDF
               Response.ContentType ="application/msword";
                Response.WriteFile(FileName)
                Response.Flush()
                Response.Close()            'delete exported files
                System.IO.File.Delete(FileName)
       按照我这种方法一定行。
      

  2.   

    to zhangjian01361(My_CSDN)    我试过你这种方法,导出不了,会是会弹出一个对话框问是保存还是打开,点打开,然后什么反映都没有了