3

저는 수십 개의 레거시 보고서를 보유하고 있으며 그 중 많은 보고서는 SQL Server 저장 프로 시저를 데이터 원본으로 사용합니다. Visual Studio 2010 버전 13.0.2에 대해 VB.NET 2010CR을 사용하여 응용 프로그램에서 사용하려고합니다. 내가 저장 프로 시저를 기반으로 보고서를 실행하면저장 프로 시저에서 Crystal Report를 작성하려면 어떻게합니까?

나는

표 'REPORT_SCHEDULEB'같은 보고서의 외모에

테이블 정의를 찾을 수 없습니다라는 오류 메시지가 같은 :

LogOnInfo.ConnectionInfo for REPORT_SCHEDULEB: 
Name: "REPORT_SCHEDULEB", Location: "Proc(REPORT_SCHEDULEB;1)" 
AllowCustomConnection: False, DBName: myDb, IntegratedSecurity: False 
ServerName: myComputer, User: myName, Password: myPassword, Attributes: 
    Database DLL: crdb_ado.dll 
    QE_DatabaseName: myDb 
    QE_DatabaseType: OLE DB (ADO) 
     Auto Translate: -1 
     Connect Timeout: 0 
     Data Source: myComputer 
     General Timeout: 0 
     Initial Catalog: myDb 
     Integrated Security: False 
     Locale Identifier: 1033 
     OLE DB Services: -5 
     Provider: SQLOLEDB 
     Tag with column collation when possible: 0 
     Use DSN Default Properties: False 
     Use Encryption for Data: 0 
     Owner: dbo 
    QE_ServerDescription: myComputer 
    QE_SQLDB: True 
    SSO Enabled: False 
    Owner: dbo 

을 나는 끝까지 위치에 일부 문제가 있음을 추측하고있어 필드가 정의되어 있지만

  1. 나는 그것이 변경 내용을 적용하지 않습니다 보고서 편집기에서 오버라이드 (override) 자격을 갖춘 테이블 이름을 변경하려고하고,
  2. 정말 오히려 프로그램 해결책을 찾을 것 수십 개의 보고서를 직접 편집하는 것보다

그래서, 나는 table.Location 값을 설정하려면 코드에 시도,하지만 그건 COM 예외가 발생합니다 - 나는 그것이 어떤 수준에서 읽기 전용 같아요.

나는 또한 어떤 종류의 QualifiedName 속성을 설정할 가능성을 생각했지만 그렇게 할 방법을 찾지 못했습니다.

아이디어가 있으십니까?

TIA

답변

0

내가 저장 프로 시저에서 만든 데이터 테이블을 사용하여 런타임에 보고서 데이터 소스를 설정하여 VB에서 솔루션을 달성했습니다. 그런 식으로 모든 연결 세부 정보는 각 보고서가 아닌 응용 프로그램 내에서 한 번만 저장하면됩니다.

대략적

Dim SourceDatabase as datatable = GetDatatableFromSP(SPName) 
Dim DocumentToShow as New ReportDocument 

DocumentToShow.Load(DocumentPath) 
DocumentToShow.SetDataSource(SourceDatabase) 

ReportViewer.ViewerCore.ReportSource = DocumentToShow 
관련 문제