Oracle 带登录名的Visual Basic 2012 Call Crystal报表

Oracle 带登录名的Visual Basic 2012 Call Crystal报表,oracle,visual-studio-2012,login,crystal-reports,Oracle,Visual Studio 2012,Login,Crystal Reports,我刚刚开始使用Visual Studio 2012,从未接受过任何培训,所以请原谅我,这是一个简单/愚蠢的问题 我创建了一个相对简单的程序,用户可以使用它来运行Crystal Reports。他们可以选择自己的部门,并获得可能的报告列表。如果他们点击选择按钮,第二个表单将打开Crystal Report 然而,当出现这种情况时,它要求数据库登录。我在主屏幕中创建了3个变量,保存了数据库名称、用户名和密码,并希望在打开报表时使用这些变量 该报告基于Oracle数据库 保存Crystal文件的表单中

我刚刚开始使用Visual Studio 2012,从未接受过任何培训,所以请原谅我,这是一个简单/愚蠢的问题

我创建了一个相对简单的程序,用户可以使用它来运行Crystal Reports。他们可以选择自己的部门,并获得可能的报告列表。如果他们点击选择按钮,第二个表单将打开Crystal Report

然而,当出现这种情况时,它要求数据库登录。我在主屏幕中创建了3个变量,保存了数据库名称、用户名和密码,并希望在打开报表时使用这些变量

该报告基于Oracle数据库

保存Crystal文件的表单中包含CrystalReportViewer。在这里,我选择了我的报告

我在网上找到的代码尚未运行,它仍在询问登录详细信息:

Imports CrystalDecisions.Shared
Imports CrystalDecisions.CrystalReports.Engine

 Public Class F_QTS_Al4All

Private Sub configureCRYSTALREPORT()
    Dim myConnectionInfo As New ConnectionInfo()

    myConnectionInfo.DatabaseName = F_IJ_IE_Internal_Reporting.Login_Database
    myConnectionInfo.UserID = F_IJ_IE_Internal_Reporting.Login_Username
    myConnectionInfo.Password = F_IJ_IE_Internal_Reporting.Login_Password
    setDBLOGONforREPORT(myConnectionInfo)
End Sub

Private Sub setDBLOGONforREPORT(ByVal myconnectioninfo As ConnectionInfo)
    Dim mytableloginfos As New TableLogOnInfos()
    mytableloginfos = CrystalReportViewer1.LogOnInfo
    For Each myTableLogOnInfo As TableLogOnInfo In mytableloginfos
        myTableLogOnInfo.ConnectionInfo = myconnectioninfo
    Next
End Sub

Private Sub CrystalReportViewer1_Load(sender As Object, e As EventArgs) Handles CrystalReportViewer1.Load

End Sub
End Class
所以我一直在玩,并将myConnectionInfo部分复制到CrystalReportViewer1部分。现在,我得到一个异常,说NullReferenceException是由用户代码导致的未处理异常

我的idea快用完了,你们中有谁知道如何更改为代码,这样它就不再需要凭据了

我也在某个地方读到,我可以将报告源保持为空,但我不知道如果我将报告保持为空,该如何调用它

提前多谢

问候


格本

我知道怎么做了。我在主屏幕中创建了另一个名为reportpath的共享变量。当我决定要打电话给哪个报告时,我会填写这个表格。之后,我有以下代码

Imports CrystalDecisions.Shared
Imports CrystalDecisions.CrystalReports.Engine

Public Class F_Report

Private Sub configureCRYSTALREPORT()
    Dim myConnectionInfo As New ConnectionInfo()

    myConnectionInfo.DatabaseName = F_IJ_IE_Internal_Reporting.Login_Database
    myConnectionInfo.UserID = F_IJ_IE_Internal_Reporting.Login_Username
    myConnectionInfo.Password = F_IJ_IE_Internal_Reporting.Login_Password
    setDBLOGONforREPORT(myConnectionInfo)
End Sub

Private Sub setDBLOGONforREPORT(ByVal myconnectioninfo As ConnectionInfo)
    Dim mytableloginfos As New TableLogOnInfos()
    mytableloginfos = CrystalReportViewer1.LogOnInfo
    For Each myTableLogOnInfo As TableLogOnInfo In mytableloginfos
        myTableLogOnInfo.ConnectionInfo = myconnectioninfo
    Next
End Sub

Private Sub CrystalReportViewer1_Load(sender As Object, e As EventArgs) Handles CrystalReportViewer1.Load
    CrystalReportViewer1.ReportSource = F_IJ_IE_Internal_Reporting.ReportPath
    Dim myConnectionInfo As New ConnectionInfo()

    myConnectionInfo.DatabaseName = F_IJ_IE_Internal_Reporting.Login_Database
    myConnectionInfo.UserID = F_IJ_IE_Internal_Reporting.Login_Username
    myConnectionInfo.Password = F_IJ_IE_Internal_Reporting.Login_Password
    setDBLOGONforREPORT(myConnectionInfo)
End Sub
End Class