cancel
Showing results for 
Search instead for 
Did you mean: 
Subscribe

Hi, we have installed the crystal runtime 13.0.30 and in some computers occasionally occours the error:

Error Retrieving the COM class factory for component with CLSID {F734A321-8381-4FFD-A614-139E8906DC83} failed due to the following error: 8007007f Unable to find the specified procedure. (Exception from HRESULT: 0x8007007F). in CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.CreateRptDoc()

What could be the problem?

0 Likes
View Entire Topic
DellSC
Active Contributor
0 Likes

Was your application compiled with the same version of the SDK as the runtime that you've installed? If not, that's the problem - the two need to be the same. However, there is a possible work-around: go to the Crystal for VS wiki and look for "WinFormCRViewer.zip". Download that file and go to the link just above it that will explain how to use it.

-Dell

Former Member
0 Likes

Yes, the application is compiled with the same version of the SDK and runtime. In Visual Studio the application shows a reference to version 13.0.4000.0 and in the control panel the runtime installed says version 13.0.30.3805.

DellSC
Active Contributor
0 Likes

In VS, you're looking at the assembly version, which basically shows which version of the .NET runtime it works with - multiple service packs can have the same assembly version. The version that you see in Programs and Features, is the install version which indicates that you're using SP 30. The two numbers are not referencing the same thing.

Is there a particular reason why you're using the ReportClientDoc object model instead of ReportDocument? In other words, is there something you're doing in your code that cannot be done with ReportDocument?

-Dell

Former Member
0 Likes

In the Programs and Features the SAP crystal reports version for visual studio is the same of sap crystal reports runtime.

I'm using the ReportDocument, the full stack of the error is:

CrystalDecisions.CrystalReports.Engine

Error: Retrieving the COM class factory for component with CLSID {F734A321-8381-4FFD-A614-139E8906DC83} failed due to the following error: 8007007f Unable to find the specified procedure. (Exception from HRESULT: 0x8007007F).
CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.CreateRptDoc()
in CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper..ctor()
in CrystalDecisions.CrystalReports.Engine.ReportDocument.Initialize()
in CrystalDecisions.CrystalReports.Engine.ReportDocument..ctor()


DellSC
Active Contributor
0 Likes

The only thing I can think of is that it might be a memory issue, since it's random. Are you explicitly calling .Dispose() on the reports when you're done with them or working with them within a Using clause so that .Dispose() is automatically called? Much of the internals of the SDK is based on COM objects and .NET doesn't memory manage COM well, so you have to explicitly .Dispose() the objects to free up the memory.

don.williams, do you have any other thoughts on this?

-Dell

Former Member
0 Likes

I'm using .Close() and .Dispose(), the code is like this:

public class ShowReport
  public sub ViewReport(byval reportfile as string)
    loReport = New ReportDocument
    loReport.Load(reportfile)

    '... code to .SetDataSource and .SetParameterValue

    'If is to export to pdf:
    loReport.Export()
    loReport.Close()
    loReport.Dispose()

    'If is to send to printer:
    loReport.PrintToPrinter(1, True, 0, 0)
    loReport.Close()
    loReport.Dispose()

    If is to preview:
    Dim loPreview As frmPreview = New frmPreview
    loPreview.ViewReport(loReport)
  end sub
end class

'in the form frmPreview:
Dim loDoc As ReportDocument
Friend WithEvents objViewer As CrystalDecisions.Windows.Forms.CrystalReportViewer
Public Sub ViewReport(ByRef toReport As ReportDocument)
  loDoc = toReport
  objViewer.ReportSource = toReport
  Me.Show()
end sub

Private Sub frmPreview_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
    loDoc.Close()
    loDoc.Dispose()
End Sub

It worked fine with the SP 22, we now started using the SP30, compiled the code to SP30 and installed the SP30 runtime and now sometimes we get this error.

DellSC
Active Contributor
0 Likes

I think Don's probably going to have to answer this one - I'm at the limit of what I know to tell you.

-Dell

Former Member
0 Likes

We just received another error:

CrystalDecisions.Shared
Error: Could not load file or assembly 'System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. There are not enough memory resources to process this command. (Exception from HRESULT: 0x80070008)
Local: in CrystalDecisions.Shared.SharedUtils.GetEffectiveContentCulture()
in CrystalDecisions.Shared.SharedUtils.GetContentLocale()
in CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.CreateRptDoc()
in CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper..ctor()
in CrystalDecisions.CrystalReports.Engine.ReportDocument.Initialize()
in CrystalDecisions.CrystalReports.Engine.ReportDocument..ctor()

These errors did not occur in the SP22 version, we are having these errors with the SP30 version.

What can we do to avoid these errors that appear to be memory problems?

Former Member
0 Likes

Hi, is there any solution to this random errors? Did Don have an opportunity to analyze the problem?

We got another different error:

Source: CrystalDecisions.CrystalReports.Engine
Message: Failed to load the report.
Location: at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened ()
at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load (String filename, OpenReportMethod openMethod, Int16 parentJob)
at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load (String filename)

Could be a problem with SP30? Is there some new update we can use?