I am using Standalone crystal report in my project which is in windows application. Here i want to pass the logon credentials. the following code am using.
Private Sub cmd_print_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_print.Click
Dim strConnection As String = "..."
Dim cr As New CrystalDecisions.CrystalReports.Engine.ReportDocument
Dim strReportPath As String = "d:\ReportFtLabel.rpt"
cr.Load(strReportPath)
Dim ConnectInfo As New CrystalDecisions.Shared.ConnectionInfo
With ConnectInfo
.ServerName = "RRRR"
.DatabaseName = "RRRR"
.UserID = "XXXX"
.Password = "XXXX"
End With
For Each Table As CrystalDecisions.CrystalReports.Engine.Table In cr.Database.Tables
Dim LogOnInfo As CrystalDecisions.Shared.TableLogOnInfo
LogOnInfo = Table.LogOnInfo
LogOnInfo.ConnectionInfo = ConnectInfo
Table.ApplyLogOnInfo(LogOnInfo)
Next
objSCIP_ml = New SCIP_ml
objSCIP_bll = New scip_bll
Dim DS As New DataSet
DS = objSCIP_bll.bll_GetHandShake(objSCIP_ml)
If Not DS Is Nothing Then
cr.Load(strReportPath)
cr.SetDataSource(DS)
CrystalReportViewer1.ReportSource = cr
CrystalReportViewer1.Refresh()
End If
DS = Nothing
objSCIP_ml = Nothing
objSCIP_bll = Nothing
End Sub
But it throws the following error.
somewhere i am missing to pass the logon information... Any suggestions and solutions is very much appreciated. Thanks in advance.
you can add it to your App config as keys like:
<add key="ServerName" value="RRRR"/>
<add key="DataBaseName" value="RRRR"/>
<add key="DatabaseUser" value="XXXX"/>
<add key="DatabasePassword" value="XXXX"/>
and call them in your code like:
Dim SERVER_NAME As String = ConfigurationManager.AppSettings("ServerName").ToString()
Dim DATABASE_NAME As String = ConfigurationManager.AppSettings("DataBaseName").ToString()
Dim DatabaseUser As String = ConfigurationManager.AppSettings("DatabaseUser").ToString()
Dim DatabasePassword As String = ConfigurationManager.AppSettings("DatabasePassword").ToString()
.UserID = "XXXX"
.Password = "XXXX"