Avatar of dgoncher
dgoncher

asked on 

CR XI Report from SQL Stored Procedure

I can't seem to get this report to get the logon info passed.  The report is based on a SQL Stored Procedure.  My users keep getting the Database login dialog box.  It has the Servername, Login ID and Password but the database is blank (and you cannot enter it).  I've been trying the suggestions on this website to no avail.  The User passed in has dbo rights to the db and rights to execute the stored proc.  I've tried it with a sub report and without a sub report.  VS2005  CR XI

Here is my function
 Friend Function ViewReport(ByVal sReportName As String) As Boolean

        'Declaring variables
        Dim intCounter As Integer
        Dim intCounter1 As Integer

        'Crystal Report's report document object
        Dim objReport As New _
                    CrystalDecisions.CrystalReports.Engine.ReportDocument

        'object of table Log on info of Crystal report
        Dim ConInfo As New CrystalDecisions.Shared.TableLogOnInfo

        'Sub report object of crystal report.
        Dim mySubReportObject As _
                  CrystalDecisions.CrystalReports.Engine.SubreportObject

        'Sub report document of crystal report.
        Dim mySubRepDoc As New CrystalDecisions.CrystalReports.Engine.ReportDocument      
       
        Dim index As Integer

        Try

         
            'Load the report
            objReport.Load(sReportName)

                     
            objReport.SetDatabaseLogon("XXUSER", "USERPWD")


            ConInfo.ConnectionInfo.UserID = "XXUSER"
            ConInfo.ConnectionInfo.Password = "USERPWD"
            ConInfo.ConnectionInfo.ServerName = "SqlServer1"
            ConInfo.ConnectionInfo.DatabaseName = "DB109"
               

       

            ' Loop through each section on the report then look
            ' through each object in the section
            ' if the object is a subreport, then apply logon info
            ' on each table of that sub report

            For index = 0 To objReport.ReportDefinition.Sections.Count - 1
                For intCounter = 0 To _
                      objReport.ReportDefinition.Sections(index).ReportObjects.Count - 1
                    With objReport.ReportDefinition.Sections(index)
                        If .ReportObjects(intCounter).Kind = _
                           CrystalDecisions.Shared.ReportObjectKind.SubreportObject Then
                            mySubReportObject = CType(.ReportObjects(intCounter), _
                            CrystalDecisions.CrystalReports.Engine.SubreportObject)
                            mySubRepDoc = _
                             mySubReportObject.OpenSubreport(mySubReportObject.SubreportName)

                            For intCounter1 = 0 To mySubRepDoc.Database.Tables.Count - 1
                                mySubRepDoc.Database.Tables(intCounter1).ApplyLogOnInfo(ConInfo)
                              ' Tried setting twice
                              '  mySubRepDoc.Database.Tables(intCounter1).ApplyLogOnInfo(ConInfo)
                            Next
                        End If
                    End With
                Next
            Next
           
           
            CrystalReportViewer1.ReportSource = Nothing

            objReport.SetDatabaseLogon("XXUSER", "USERPWD")

            'Set the current report object to report.

            CrystalReportViewer1.ReportSource = objReport

            CrystalReportViewer1.Show()
            Return True
        Catch ex As System.Exception
            MsgBox(ex.Message)
        End Try
    End Function


Thanks
Crystal Reports

Avatar of undefined
Last Comment
dgoncher
Avatar of Mike McCracken
Mike McCracken

Are you changing the database or the server being used?

mlmcc
Avatar of dgoncher
dgoncher

ASKER

No
Avatar of vasto
vasto
Flag of United States of America image

You are applying the connection info to the subreports but not to the main report
Avatar of dgoncher
dgoncher

ASKER

I added objReport.Database.Tables(intCounter1).ApplyLogOnInfo(ConInfo) but still the same result
Avatar of dgoncher
dgoncher

ASKER

I did that in a loop (forgot to say that

 For intCounter1 = 0 To objReport.Database.Tables.Count - 1
               objReport.Database.Tables(intCounter1).ApplyLogOnInfo(ConInfo)
Next
For intCounter1 = 1 To objReport.Database.Tables.Count

Crystal arrays are indexed from 1 so using 0 may cause problems

mlmcc
Avatar of dgoncher
dgoncher

ASKER

objReport.Database.Tables is zero based in my application.

I resolved the issue.  Apparently CR is useing the 2005 SQL Native Client.  After downloading and installing on eah machine the app works fine.
Avatar of dgoncher
dgoncher

ASKER

I've requested that this question be closed as follows:

Accepted answer: 0 points for dgoncher's comment http:/Q_27296164.html#36504277

for the following reason:

Issue resolved by myself
FYI - I believe the Native client requires a license from MS to be legal.

mlmcc
Avatar of dgoncher
dgoncher

ASKER

Great,  why would crystal require that?
Crystal doesn't.  The native client is a MS client.  The license is from MS.
Unless they have released a license free version.  We started down that path with Crystal 8 and decided we didn't need to buy 5-600 licenses that had to be installed and updated.

mlmcc
ASKER CERTIFIED SOLUTION
Avatar of vasto
vasto
Flag of United States of America image

Blurred text
THIS SOLUTION IS ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
Avatar of dgoncher
dgoncher

ASKER

I need to accept the last response as the solution.  Mine had flaws
Avatar of dgoncher
dgoncher

ASKER

Changed the connetion and all is well!
Crystal Reports
Crystal Reports

Crystal Reports is a business intelligence application from SAP SE. It is used to graphically design data connections and report layouts from a wide range of data sources including Excel spreadsheets, Oracle, SQL Server databases and Access databases, BusinessObjects Enterprise business views, and local file-system information. Report designers can place fields from these sources on the report design surface, and can also deploy them in custom formulas (using either BASIC or Crystal's own syntax), which are then placed on the design surface. Crystal Reports also supports subreports, graphing, and a limited amount of GIS functionality.

36K
Questions
--
Followers
--
Top Experts
Get a personalized solution from industry experts
Ask the experts
Read over 600 more reviews

TRUSTED BY

IBM logoIntel logoMicrosoft logoUbisoft logoSAP logo
Qualcomm logoCitrix Systems logoWorkday logoErnst & Young logo
High performer badgeUsers love us badge
LinkedIn logoFacebook logoX logoInstagram logoTikTok logoYouTube logo