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
mlmcc