2014-10-15 2 views
0

방금 ​​Visual Studio 2012로 작업하기 시작 했으므로 교육을 전혀받지 못했습니다. 용서하십시오. 간단하지만 어리석은 질문입니다.Visual Basic 2012 전화로 Crystal Reports 로그인

사용자가 Crystal Reports를 실행하는 데 사용할 수있는 비교적 간단한 프로그램을 만들었습니다. 그들은 부서를 선택하고 가능한 보고서로 목록을 얻을 수 있습니다. 그들이 "선택"버튼을 클릭하면 두 번째 양식이 Crystal Report로 열립니다.

그러나이 메시지가 나타나면 데이터베이스 로그인을 요청하고 있습니다. 내 메인 화면에 데이터베이스 이름, 사용자 이름 및 암호를 저장하고 보고서를 열 때이 변수를 사용하기 위해 3 개의 변수를 만들었습니다.

이 보고서는 오라클 데이터베이스

그 안에 통해 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이 사용자 코드에 의해 처리되지 않았다는 예외가 발생했습니다

아이디어가 부족합니다. 코드를 변경하여 더 이상 자격 증명을 요구하지 않는 아이디어가 있습니까?

보고서 소스를 비워 둘 수있는 곳을 읽었지만 비워두면 보고서를 호출하는 방법을 모르겠습니다.

미리 감사드립니다 많은

종류 내가이 작업을 수행하는 방법을 발견

가벤

답변

0

을 간주한다. 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