Solved

Failed to load report error using crystal reports and vb.net

Posted on 2008-10-27
2
1,232 Views
Last Modified: 2011-10-03
I am using a crystal reports that ships with visual studio.net to create customer accounts and after printing 67 reports to disc it is blowing out with "Load Report Failed" on the line cryRpt.Load(strReportName)

I think perhaps I am not closing something or disposing of something, the code I am using is attached - I loop over my customer set (of about 300) and call this routine every time. My report is linked to a table in sql server 2005.

Private Sub ConfigureInvoiceAccRunRpt()
 
        Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo()
        Dim strReportName As String = ""
        Try
 
            myConnectionInfo.AllowCustomConnection = True
            myConnectionInfo.DatabaseName = "MyDb"
            myConnectionInfo.ServerName = MyServerName
            myConnectionInfo.IntegratedSecurity = True
            myConnectionInfo.Type = ConnectionInfoType.SQL
 
            strReportName = "C:\Invoice.rpt"
 
            Dim cryRpt As New ReportDocument
            cryRpt.Load(strReportName)  '<-- fails here after 67 times
 
            SetDBLogonForReport(myConnectionInfo, cryRpt)
 
            Dim crParameterFieldDefinitions As ParameterFieldDefinitions
            Dim crParameterFieldDefinition As ParameterFieldDefinition
            Dim crParameterValues As New ParameterValues
            Dim crParameterDiscreteValue As New ParameterDiscreteValue
 
            crParameterValues.Clear()
            crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields
 
            crParameterDiscreteValue.Value = 3
            crParameterFieldDefinition = crParameterFieldDefinitions.Item("SiteID")
            crParameterValues = crParameterFieldDefinition.CurrentValues
            crParameterValues.Add(crParameterDiscreteValue)
            crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)
           
             cryRpt.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.CrystalReport, "C:\Spool\Accounts\Customername.rpt")
 
        Catch
            MsgBox(Err.Description)
        Finally
        End Try
 
    End Sub

Open in new window

0
Comment
Question by:alexking
2 Comments
 
LVL 70

Accepted Solution

by:
Éric Moreau earned 500 total points
ID: 22811559
I had the very same problem (except that my trigger was at 75). I ended fixing the problem by calling all the appropriate Dispose and Close methods on each object that was having them and setting my objects to Nothing.

Try something like this:

    Private Sub ConfigureInvoiceAccRunRpt()
 
        Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo()
        Dim strReportName As String = ""
 
        Dim cryRpt As New ReportDocument
 
        Try
 
            myConnectionInfo.AllowCustomConnection = True
            myConnectionInfo.DatabaseName = "MyDb"
            myConnectionInfo.ServerName = MyServerName
            myConnectionInfo.IntegratedSecurity = True
            myConnectionInfo.Type = ConnectionInfoType.SQL
 
            strReportName = "C:\Invoice.rpt"
 
            cryRpt.Load(strReportName)  '<-- fails here after 67 times
 
            SetDBLogonForReport(myConnectionInfo, cryRpt)
 
            Dim crParameterFieldDefinitions As ParameterFieldDefinitions
            Dim crParameterFieldDefinition As ParameterFieldDefinition
            Dim crParameterValues As New ParameterValues
            Dim crParameterDiscreteValue As New ParameterDiscreteValue
 
            crParameterValues.Clear()
            crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields
 
            crParameterDiscreteValue.Value = 3
            crParameterFieldDefinition = crParameterFieldDefinitions.Item("SiteID")
            crParameterValues = crParameterFieldDefinition.CurrentValues
            crParameterValues.Add(crParameterDiscreteValue)
            crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)
 
            cryRpt.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.CrystalReport, "C:\Spool\Accounts\Customername.rpt")
 
        Catch
            MsgBox(Err.Description)
        Finally
            cryRpt.Close()
            cryRpt.Dispose()
            cryRpt = Nothing
 
            myConnectionInfo = Nothing
        End Try
    End Sub

Open in new window

0
 

Author Comment

by:alexking
ID: 22811634
Many thanks - its hard to find much documentation about this, seems to be a well kept secret! I only traced the error by using the activity monitor in SQL server management studio in the first place.

0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

There have always been a lot of questions related to when Crystal Reports evaluates report components (such as formulas, summaries, cross-tabs, charts, to name a few examples). Crystal Reports uses a two-pass reporting process to provide greater …
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

828 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question