I have written the code that sets the logon information for Crystal reports and allows user to run the report. My problem is the code works fine with Oracle database, but not with SQL. I have created an ODBC connections for both SQL and Oracle, but the SQL does not work. If I run the report in Crystal, everything works without any issues. Could any one help. I use VS2005 and Crystal2008. when I run the aspx form, system asks again for the user and password. When I enter this and click OK, it displays the report parameters. just before I ran the report, I printed the following.
rpt.DataSourceConnections.Item(0).UserID rpt.DataSourceConnections.Item(0).Password
I always get the userid, but the password is blank. Not sure why though
Any help is greatly appreciated.
Form Load code: Dim reportPath As String = "C:\Inetpub\wwwroot\sbc\SQL_Report.rpt"
Dim rpt As New ReportDocument rpt.Load(reportPath)
Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo() myConnectionInfo.ServerName = "SQL_ODBC" myConnectionInfo.UserID = "repuser" myConnectionInfo.Password = "rep123"
SetDBLogonForReport(myConnectionInfo, rpt) SetDBLogonForSubreports(myConnectionInfo, rpt) CrystalReportViewer1.ReportSource = rpt
Private Sub SetDBLogonForReport(ByVal myConnectionInfo As ConnectionInfo, ByVal myReportDocument As ReportDocument) Dim myTables As Tables = myReportDocument.Database.Tables For Each myTable As CrystalDecisions.CrystalReports.Engine.Table In myTables Dim myTableLogonInfo As TableLogOnInfo = myTable.LogOnInfo myTableLogonInfo.ConnectionInfo = myConnectionInfo myTable.ApplyLogOnInfo(myTableLogonInfo) Next End Sub
Private Sub SetDBLogonForSubreports(ByVal myConnectionInfo As ConnectionInfo, ByVal myReportDocument As ReportDocument) Dim mySections As Sections = myReportDocument.ReportDefinition.Sections For Each mySection As Section In mySections Dim myReportObjects As ReportObjects = mySection.ReportObjects For Each myReportObject As ReportObject In myReportObjects If myReportObject.Kind = ReportObjectKind.SubreportObject Then Dim mySubreportObject As SubreportObject = CType(myReportObject, SubreportObject)
Dim subReportDocument As ReportDocument = mySubreportObject.OpenSubreport(mySubreportObject.SubreportName)
SetDBLogonForReport(myConnectionInfo, subReportDocument) End If Next Next End Sub
|