mike55 Posted March 6, 2007 Posted March 6, 2007 (edited) Problem Solved, had already called the .Dispose method. Hi all I have a crystal report which I am displaying in my web page as a .pdf file. I am getting the error message: "Object reference not set to an instance of an object" when the Page_Unload method is fired. Not sure what could be going wrong, as I am using the same code in two other pages, and they work correctly. Is it that I should be using a garbage collector? Here is the code that I am using: 'Global Variable Dim oRpt As ReportDocument Protected Sub Page_Unload(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Unload oRpt.Dispose() End Sub Private Sub GenerateReport() Dim crystalServer As String = ConfigurationManager.ConnectionStrings("SERVER").ToString Dim count As Int16 = 0 start: oRpt = New ReportDocument Dim util As New Utility Dim requestedHostAddress As String requestedHostAddress = Request.UserHostAddress 'If util.GetReportCredentials(dbUser, dbPass, dbName) = False Then ' Response.Redirect("Error.aspx?fc=rpt&type=Msgrpt") 'End If Dim rptpath As String = Server.MapPath("rptMessages.rpt") If Len(rptpath) = 0 Then Exit Sub Else oRpt.Load(rptpath) End If oRpt.DataDefinition.FormulaFields("DFrom").Text = "'" + Request.QueryString("From") + "'" oRpt.DataDefinition.FormulaFields("DTo").Text = "'" + Request.QueryString("To") + "'" oRpt.DataDefinition.FormulaFields("Org").Text = "'" + Session("OrgID") + "'" oRpt.DataDefinition.FormulaFields("GID").Text = "'" + Request.QueryString("GID") + "'" oRpt.DataDefinition.FormulaFields("Group").Text = "'" + Request.QueryString("Group") + "'" oRpt.DataDefinition.FormulaFields("Type").Text = "'" + Request.QueryString("Type") + "'" oRpt.DataDefinition.FormulaFields("User").Text = "'" + Request.QueryString("by").Replace("'", "`") + "'" oRpt.DataDefinition.FormulaFields("OName").Text = "'" + Session("OrgName") + "'" Try 'The following try catch statement is responsible for generating the report in a .pdf format. Dim crLogonInfo As CrystalDecisions.Shared.TableLogOnInfo crLogonInfo = oRpt.Database.Tables(0).LogOnInfo crLogonInfo.ConnectionInfo.ServerName = crystalServer crLogonInfo.ConnectionInfo.DatabaseName = ConfigurationManager.ConnectionStrings("DBNAME").ToString crLogonInfo.ConnectionInfo.UserID = ConfigurationManager.ConnectionStrings("USER").ToString crLogonInfo.ConnectionInfo.Password = ConfigurationManager.ConnectionStrings("PASS").ToString oRpt.Database.Tables(0).ApplyLogOnInfo(crLogonInfo) Dim myExportOptions As CrystalDecisions.Shared.ExportOptions Dim myDiskFilesDestinationOptions As CrystalDecisions.Shared.DiskFileDestinationOptions Dim myExportFile As String myExportFile = "C:\temp\PDF " & Session.SessionID.ToString & ".pdf" myDiskFilesDestinationOptions = New CrystalDecisions.Shared.DiskFileDestinationOptions myDiskFilesDestinationOptions.DiskFileName = myExportFile myExportOptions = oRpt.ExportOptions With myExportOptions .DestinationOptions = myDiskFilesDestinationOptions .ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile .ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat End With oRpt.Export() Response.ClearContent() Response.ClearHeaders() Response.ContentType = "application/pdf" Response.WriteFile(myExportFile) Response.Flush() Response.Close() oRpt.Dispose() If Not oRpt Is Nothing Then oRpt = Nothing End If System.IO.File.Delete(myExportFile) Catch ex As Exception If count <= 1 Then crystalServer = ConfigurationManager.ConnectionStrings("SERVER_FAILOVER").ToString count = +1 End If GoTo start End Try End Sub Mike55. Edited March 6, 2007 by mike55 Quote A Client refers to the person who incurs the development cost. A Customer refers to the person that pays to use the product. ------ My software never has bugs. It just develops random features. (Mosabama vbforums.com)
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.