你是否在放置水晶报表的控件(CrystalReportViewer)的页面里面的fromload中加入ispostback的判断?如果进入打印的页面时候ispostback=false控件不会加载报表,当然导出就失败。

解决方案 »

  1.   

    Dim objRpt As New rptQuotationRequestForm()
            Dim cnn As New ADODB.Connection()
            Dim rsQuotation_request_form As New ADODB.Recordset()
            Dim rsLot As New ADODB.Recordset()
            Dim sql As String        cnn.Open(clsDatabase.ADO_CNN_STRING)        sql = "select * from fn_ShipmentQty(" & clsAfasia.SQLString(Contract) & ") "
            rsLot.Open(sql, cnn, ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockReadOnly)
            rsQuotation_request_form.Open("select * from viwQuotationRequestForm where cntrNo=" & clsAfasia.SQLString(Contract) & "", cnn, ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockReadOnly)        objRpt.SetDataSource(rsQuotation_request_form)
            objRpt.OpenSubreport("rptLot.rpt").SetDataSource(rsLot)
            objRpt.Refresh()        Dim DiskOpts As New CrystalDecisions.Shared.DiskFileDestinationOptions()
            Dim tname As String = clsAfasia.getTempName(".pdf")        objRpt.ExportToDisk(CrystalDecisions.[Shared].ExportFormatType.PortableDocFormat, clsAfasia.TempFolderName & tname)        rsQuotation_request_form.Close()
            rsLot.Close()
            cnn = Nothing        Response.Write("<script language=javascript>")
            Response.Write("window.open('" & "temp\\" & tname & "');")
            Response.Write("</script>")