다음을 통해 공유


ReportClientDocument.Open() 메서드를 사용하여 관리되지 않는 RAS 서버에 바인딩

Note참고

이 페이지에서는 Crystal Reports for Visual Studio에서 사용할 수 없지만 업그레이드 버전에서는 사용할 수 있는 기능을 설명합니다. Crystal Reports for Visual Studio에 대한 자세한 내용은 "Crystal Reports for Visual Studio의 정의"를 참조하십시오. 업그레이드된 버전에 대한 자세한 내용은 "업그레이드 옵션"을 참조하십시오.

개체 모델

이 보고서 바인딩 시나리오에는 ReportClientDocument가 사용됩니다("ReportClientDocument 개체 모델(RAS)을 통한 보고서 바인딩" 참조).

보고서 위치

보고서는 관리되지 않는 RAS 서버("RAS(보고서 응용 프로그램 서버)" 참조)가 액세스할 수 있는 파일 디렉터리에 있습니다.

설명

이 보고서 바인딩 시나리오에서는 ReportClientDocument 개체 모델에 직접 액세스합니다. ReportClientDocument의 Open() 메서드에 개체 형식의 파일 디렉터리 경로와 정수 0(Visual Basic의 경우 선택적 매개 변수)이 전달됩니다. 코드 샘플은 아래 부분을 참조하십시오.

장점

  • 이전 버전과 호환됩니다. RAS 9 이상을 사용하는 ReportClientDocument 개체 모델에서 보고서와 상호 작용할 수 있는 실용적인 방법입니다.
  • 최적화된 성능을 제공합니다. RAS(보고서 응용 프로그램 서버)의 뛰어난 보고서 엔진을 활용하여 성능이 크게 향상됩니다. "Business Objects 보고서 작성 솔루션 간의 아키텍처 비교"를 참조하십시오.
  • 이식이 용이합니다. ReportDocument 개체 모델을 사용하는 보고서와 상호 작용하는 모든 원래 코드를 유지하면서, ReportDocument.ReportClientDocument 속성을 통해 기본 ReportClientDocument 개체 모델에 대한 모든 액세스를 제공할 수 있습니다.
    Note참고

    ReportClientDocument 개체 모델을 사용하면 프로그래밍 방식으로 보고서 정의 파일을 작성 또는 수정하고 변경 사항을 저장할 수 있습니다. 자세한 내용은 아키텍처의 "ReportClientDocument 개체 모델(RAS)"을 참조하십시오.

  • 직접 코딩할 수 있습니다. ReportClientDocument 개체 모델에 직접 액세스할 수 있습니다.

단점

  • 성능이 크게 개선되지 않습니다. 관리되지 않는 RAS 서버로 업그레이드하면 보고서 성능이 크게 향상되지만 관리되는 RAS 서버로 업그레이드하는 경우만큼 향상되지는 않습니다.

ReportClientDocument의 Open 메서드를 사용하여 로컬 파일 디렉터리에서 RAS 서버로 보고서를 로드하려면

  • 관리되지 않는 RAS 서버 버전 9 이상이 설치되어 있고 제대로 작동해야 합니다.

이 절차는 "프로젝트 설정"을 통해 생성된 프로젝트에서만 사용할 수 있습니다. 프로젝트 설정에는 이 절차에 필요한 코드 구성 및 특정 네임스페이스 참조가 포함되어 있으므로 해당 구성이 없으면 절차를 완료할 수 없습니다. 따라서 이 절차를 시작하기 전에 먼저 "프로젝트 설정"의 단계를 수행해야 합니다.

RAS 서버는 웹 프로젝트에만 사용할 수 있습니다.

  1. "프로젝트 설정"에서 만든 ConfigureCrystalReports() 메서드 내에 로컬 보고서의 경로가 포함된 문자열 선언을 추가합니다.

    Note참고

    이 경로는 RAS 보고서를 저장하기 위한 기본 디렉터리입니다. 다른 보고서 경로를 사용하면 RAS 서버에서 거부되고 "액세스가 거부되었습니다"라는 오류가 발생할 수 있습니다.

    Dim reportPath As String = "C:\Program Files\Crystal Decisions\" _ & "Report Application Server 10\Reports\" _ & "World Sales Report.rpt"
    
    string reportPath = "C:\\Program Files\\Crystal Decisions" + "\\Report Application Server 10\\Reports" + "\\World Sales Report.rpt";
    
  2. reportPath 문자열을 Object 변수로 변환합니다.

    Note참고

    ReportClientDocument의 Open() 메서드에는 문자열이 아닌 개체 형식의 문자열이 필요합니다.

    Dim reportPathAsObject As Object = CType(reportPath, Object)
    
    object reportPathAsObject = (object)reportPath;
    
  3. ReportClientDocument를 선언하고 인스턴스화합니다.

    Dim myReportClientDocument As ReportClientDocument = New
    ReportClientDocumentClass()
    
    ReportClientDocument reportClientDocument = new
    ReportClientDocumentClass();
    
  4. ReportClientDocument 인스턴스의 Open 메서드에 개체 변수인 보고서 경로와 정수 0을 갖는 옵션 매개 변수(Visual Basic의 경우 선택적)을 전달합니다.

    Note참고

    그러면 로컬 파일 디렉터리에서 보고서가 열리고 이 보고서가 관리되지 않는 RAS(보고서 응용 프로그램 서버)로 로드됩니다.

    myReportClientDocument.Open(reportPathAsObject, 0)
    
    reportClientDocument.Open(ref reportPathAsObject, 0);
    
  5. ReportClientDocument 인스턴스를 CrystalReportViewer 컨트롤에 바인딩합니다.

    myCrystalReportViewer.ReportSource = myReportClientDocument
    
    crystalReportViewer.ReportSource = reportClientDocument;
    
  6. 프로젝트를 빌드하고 실행하여 보고서를 확인합니다.

참고 항목