Using PrintReport over the web

I am using the following code in a web page to send the report directly to the printer.  The code works on some machines but not on others.  I get the error "ActiveX component can't create object 'WebReportBroker.WebReportBroker'" on the machines that it doesn't work.  

Viewing the report with the activeX viewer works fine.  The difference is that it uses WebReportBroker9 and WebReportSource9.  If I try to use that code in my print page, the page loads but the printer dialog never shows.

I am using Crystal Reports 9 on my web server with IIS 5 on Windows 2000.

Any help would be appreciated.
Thanks

<HTML>
<HEAD>
<TITLE>Please Select a Printer</TITLE>
</HEAD>
<BODY BGCOLOR=C6C6C6>

<OBJECT ID="CRViewer"
      CLASSID="CLSID:2DEF4530-8CE6-41c9-84B6-A54536C90213"
      WIDTH=1% HEIGHT=1%
      CODEBASE="/crystalreportviewers/activeXViewer/activexviewer.cab#Version=9,2,0,528" VIEWASTEXT>
<PARAM NAME="EnableRefreshButton" VALUE=0>
<PARAM NAME="EnableGroupTree" VALUE=0>
<PARAM NAME="DisplayGroupTree" VALUE=0>
<PARAM NAME="EnablePrintButton" VALUE=1>
<PARAM NAME="EnableExportButton" VALUE=0>
<PARAM NAME="EnableDrillDown" VALUE=0>
<PARAM NAME="EnableSearchControl" VALUE=0>
<PARAM NAME="EnableAnimationControl" VALUE=0>
<PARAM NAME="EnableZoomControl" VALUE=0>
</OBJECT>

<SCRIPT LANGUAGE="VBScript">
<!--
dim timer
dim printerTimer
dim pageOne
PageOne = True
Sub window_onLoad()
      Page_Initialize()
End Sub

Sub Page_Initialize
      Dim webBroker
      Set webBroker = CreateObject("WebReportBroker.WebReportBroker")
      if ScriptEngineMajorVersion < 2 then
            window.alert "IE 3.02 users on NT4 need to get the latest version of VBScript or install IE 4.01 SP1. IE 3.02 users on Win95 need DCOM95 and latest version of VBScript, or install IE 4.01 SP1. These files are available at Microsoft's web site."
            CRViewer.ReportName = Location.Href
      else
            Dim webSource
            Set webSource = CreateObject("WebReportSource.WebReportSource")
            webSource.ReportSource = webBroker
            webSource.URL = "rptserver.asp"
            webSource.PromptOnRefresh = True
            CRViewer.ReportSource = webSource
      end if
      CRViewer.ViewReport
End Sub

Sub CRViewer_DownloadFinished(byval downloadType)
      if downloadType = 1 and PageOne then
            PageOne = False
            timer = window.settimeout("OnMyTimeOut",1000)
      end if
end sub

Sub OnMyTimeOut()      
      if not CRViewer.IsBusy then
            window.ClearTimeout(timer)
            'window.alert "My timeout"'
            CRViewer.PrintReport
            printerTimer = window.SetTimeOut("OnPrinterTimeOut", 1000)

      end if
end sub

Sub OnPrinterTimeOut()
      if not CRViewer.IsBusy then
            window.ClearTimeOut(printerTimer)
'            window.History.Back'
      end if
end sub
-->
</SCRIPT>
</BODY>
</HTML>
u8semajAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

u8semajAuthor Commented:
I saw that article.  It applies to VB not VBScript, but if you try to use the code as they provide it the code will fail. There is no ReportWebBroker object or method available.  Same thing for ReportWebSource.  The code I have works on some computers but not others.  I think the problem may be in configuration but I do not know anything for certain.  The PCs that I am testing on all have the same version of the activex dll installed.
0
mlmccCommented:
I don't know since I don't use VBScript.  Is that closer to ASP?  If so I can provide examples from ASP.

Which edition of CR9 did you buy?

mlmcc
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Cloud Class® Course: Microsoft Windows 7 Basic

This introductory course to Windows 7 environment will teach you about working with the Windows operating system. You will learn about basic functions including start menu; the desktop; managing files, folders, and libraries.

u8semajAuthor Commented:
VBscript is one of the languages that you can use with ASP.   If you have examples in ASP I would like to see them.

We purchased Crystal Reports 9 Developer Edition.
0
u8semajAuthor Commented:
I figured it out.  Ultimately my problem was two things:

1.  Set webBroker = CreateObject("WebReportBroker.WebReportBroker") and
     Set webSource = CreateObject("WebReportSource.WebReportSource")
     Needed to be changed to
     Set webBroker = CreateObject("WebReportBroker9.WebReportBroker") and
     Set webSource = CreateObject("WebReportSource9.WebReportSource")

2.  The above code was being loaded into a frameset.  So while the reference to webSource.URL = "rptserver.asp"
      was fine for the viewer for the frameset it needed to reference the directory the pages were being called from. (webSource.URL = "reports/rptserver.asp")

The reason that it worked on some computers was that those computers had at one time had an earlier version of Crystal Reports installed.  I still don't know how the location of rptserver.asp was resolved on those computers.


0
mlmccCommented:
Glad you found it.

mlmcc
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Crystal Reports

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.