• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 3175
  • Last Modified:

CrystalDecisions.CrystalReports.Engine.LogOnException: Logon Failed

I am attempting to refresh a crystal report and then export it to a new location via a console application. I can get everything to work fine except for my refresh. If I comment out myreport.refresh() it exports just fine. So, my problem is getting this exception when I try to refresh. I have blanked out my server name , user id, and passwords for this post. They are populated and work fine when logging into sql plus from the same machine this code is being run from. I am however leaving the databasename="" because this is not required when connecting to oracle.
  I have listed what I think is important for this error. Please let me know if you need additional information.

APP Type:
Console Application


CrystalDecisions.CrystalReports.Engine.LogOnException:Logon Failed

Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared

Module Module1
    Private myreport As CrystalDecisions.CrystalReports.Engine.ReportDocument

    Sub Main()

        Dim crParameterValues As ParameterValues
        Dim crParameterDiscreteValue As ParameterDiscreteValue
        Dim crParameterFieldDefinitions As ParameterFieldDefinitions
        Dim crParameterFieldDefinition As ParameterFieldDefinition

        myreport = New CrystalDecisions.CrystalReports.Engine.ReportDocument()
        myreport.Load("c:\test1.rpt", OpenReportMethod.OpenReportByTempCopy)

        Dim tbCurrent As CrystalDecisions.CrystalReports.Engine.Table
        Dim tliCurrent As CrystalDecisions.Shared.TableLogOnInfo
            For Each tbCurrent In myreport.Database.Tables
                tliCurrent = tbCurrent.LogOnInfo
                With tliCurrent.ConnectionInfo
                    .ServerName = "xxxxx"
                    .UserID = "xxxxx"
                    .Password = "xxxxx#"
                    .DatabaseName = ""
                End With
            Next tbCurrent
        Catch Exp As LoadSaveReportException
            MsgBox("Incorrect path for loading report.", MsgBoxStyle.Critical, "Load Report Error")
        Catch Exp As Exception
            MsgBox(Exp.Message & "   in GetReportConnection Procedure", MsgBoxStyle.Critical, "General Error")
        End Try

        Dim CrExportOptions As ExportOptions
        Dim CrDiskFileDestinationOptions As New DiskFileDestinationOptions()
        Dim CrFormatTypeOptions As New PdfRtfWordFormatOptions()

        CrDiskFileDestinationOptions.DiskFileName = "c:\test2.rpt"
        CrExportOptions = myreport.ExportOptions

        With CrExportOptions
            .ExportDestinationType = ExportDestinationType.DiskFile
            .ExportFormatType = ExportFormatType.CrystalReport
            .DestinationOptions = CrDiskFileDestinationOptions
            .FormatOptions = CrFormatTypeOptions
        End With

            '--- Export ---------------------------------------------
            ' Sets the current parameters and exports the report to
            ' specified format.

            'Get the collection of parameters from the report
            crParameterFieldDefinitions = myreport.DataDefinition.ParameterFields

            'Access the specified parameter from the collection
            crParameterFieldDefinition = crParameterFieldDefinitions.Item("Dealer Number")

            'Get the current values from the parameter field. At this point there are zero values set.
            crParameterValues = crParameterFieldDefinition.CurrentValues

            'Set the current values for the numeric parameter field
            crParameterDiscreteValue = New ParameterDiscreteValue()
            crParameterDiscreteValue.Value = "80858"

            'Add the current value for the parameter field

            'The current parameter values must be applied for the parameter field.

        Catch exc As CrystalDecisions.CrystalReports.Engine.InvalidArgumentException
        Catch exc As CrystalDecisions.CrystalReports.Engine.ParameterFieldCurrentValueException
        Catch exc As CrystalDecisions.CrystalReports.Engine.LogOnException
        Catch exc As Exception
        End Try

    End Sub

End Module
  • 2
1 Solution
cwigleyAuthor Commented:
I found that my problem was the fact I did not have an odbc setup on the machine I was running the code from. Please close this question.

 Thank you!
You need to post in the Community Support TA and ask for delete + refund, adding a link to this question.
I am not sure why you accepted my comment as an answer. Did you post in the Community Support TA asking for a delete and refund? My comment should not be accepted as an answer since it was not intended to be one.

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.

Join & Write a Comment

Featured Post

Train for your Pen Testing Engineer Certification

Enroll today in this bundle of courses to gain experience in the logistics of pen testing, Linux fundamentals, vulnerability assessments, detecting live systems, and more! This series, valued at $3,000, is free for Premium members, Team Accounts, and Qualified Experts.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now