2011-04-08 2 views
0

보고서를 만들었습니다. 나는 ado.net 연결을 사용했다. 새 프로젝트 추가에서 데이터 세트를 만들었습니다. 필자는 데이터 집합을 구성했으며이 데이터 집합을 보고서에서 호출했습니다. 그때는 괜찮아. 그리고 저는 이것을 코드 숨김으로 작성했습니다.보고서 뷰어가 허용되지 않습니다. enableDatabaseLogonPrompt가 false입니다.

Dim Adp As New ClientDsTableAdapters.DataTable1TableAdapter 
Dim Rpt As New Client 

Rpt.Load(Server.MapPath(Client_FILE)) 
Rpt.SetDataSource(CType(Adp.GetData(), DataTable)) 

Client.EnableDatabaseLogonPrompt = False 
Client.ReportSource = Rpt 

Dim ConnectionInfo As New CrystalDecisions.Shared.ConnectionInfo 

ConnectionInfo.ServerName = "MyServer" 
ConnectionInfo.DatabaseName = "MyDB" 
ConnectionInfo.UserID = "MyUser" 
ConnectionInfo.Password = "MyPassword" 
ConnectionInfo.Type = CrystalDecisions.Shared.ConnectionInfoType.SQL 
ConnectionInfo.AllowCustomConnection = True 

For Each TableLogOnInfoVar As TableLogOnInfo In ClientReportViewer.LogOnInfo 
    TableLogOnInfoVar.ConnectionInfo = ConnectionInfo 
Next 

그리고 보고서 뷰어에서 EnableDatabaseLogonPrompt = "false"로 설정했습니다. 이제 보고서 첫 페이지가 정상입니다. 다음 페이지로 이동하여 reportviewr에서 아무 것도 클릭하면 오류가 발생합니다. 오류는 이것입니다.

Logon failed. Details: crdb_adoplus : Object reference not set to an instance of an object. Error in File 
내가 해결할 수있는 방법

답변

0

보고서는 데이터 집합에서 현재 필요로하는 모든 데이터인가? 이미 보고서에 모든 데이터를 밀어 때문에

CType(Adp.GetData(), DataTable) 

는 그렇다면, 당신은, 연결 정보를 설정할 필요가 없습니다, 그리고 서버에서 더 많은 데이터를 요청하려고해서는 안된다.

편집 :

Adp.GetData() 

이 보고서의 모든 데이터를 얻을 수 있습니까? 그렇다면 아래 코드를 모두 제거한 다음 다시 시도하십시오.

Client.EnableDatabaseLogonPrompt = False 

Dim ConnectionInfo As New CrystalDecisions.Shared.ConnectionInfo 

ConnectionInfo.ServerName = "MyServer" 
ConnectionInfo.DatabaseName = "MyDB" 
ConnectionInfo.UserID = "MyUser" 
ConnectionInfo.Password = "MyPassword" 
ConnectionInfo.Type = CrystalDecisions.Shared.ConnectionInfoType.SQL 
ConnectionInfo.AllowCustomConnection = True 

For Each TableLogOnInfoVar As TableLogOnInfo In ClientReportViewer.LogOnInfo 
    TableLogOnInfoVar.ConnectionInfo = ConnectionInfo 
Next 
+0

그러나 다음 페이지 나 다른 보고서 뷰어 버튼으로 이동할 수 없습니다. – zanhtet

관련 문제