다음을 통해 공유


ReportDocument 클래스에 로드된 비포함 보고서에 바인딩

개체 모델

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

보고서 위치

보고서는 파일 디렉터리에 있습니다.

설명

이 보고서 바인딩 시나리오에서는 더 강력한 ReportDocument 개체 모델을 비포함 보고서(프로젝트의 외부에 있는 보고서)에 사용할 수 있습니다.

"코드에서 파일 디렉터리 경로에 바인딩"에서는 해당 파일 디렉터리 경로 문자열을 통해 보고서를 바인딩합니다. 이때 디렉터리 경로를 뷰어에 직접 바인딩하는 것이 아니라 ReportDocument.Load() 메서드에 전달합니다. 따라서 ReportDocument 개체 모델을 사용할 수 있습니다.

Note참고

자세한 내용은 "개체 모델 선택"을 참조하십시오.

또한 각각의 외부 보고서가 공통 클래스인 ReportDocument에 로드되므로 모든 보고서에 대해 공통 보고서 바인딩 코드를 공유하는 보고서 선택 프로세스를 개발할 수 있습니다. 이는 보고서 바인딩 시나리오 "ReportDocument로 업캐스팅된 포함 보고서 클래스에 바인딩"의 구현 부분에 나온 코드와 유사합니다.

장점

  • 간편하게 유지 관리할 수 있습니다. 응용 프로그램을 다시 컴파일하지 않고도 보고서를 추가, 제거 또는 수정할 수 있습니다.
  • 프로그래밍 방식으로 광범위하게 상호 작용할 수 있습니다. 강력한 ReportDocument 개체 모델에 액세스할 수 있습니다.
  • 코드를 공유하여 코딩 작업량을 줄일 수 있습니다. 보고서 바인딩 시나리오 "ReportDocument로 업캐스팅된 포함 보고서 클래스에 바인딩"의 경우와 마찬가지로, 모든 보고서가 공통 ReportDocument 클래스에 로드되므로 여러 보고서가 코드를 공유할 수 있습니다.

단점

  • 배포가 제한적입니다. 응용 프로그램과 동일한 컴퓨터에 보고서가 있어야 합니다. 일반적으로 웹 서버의 ASPNET 사용자 계정을 통해 네트워크의 다른 서버에 액세스할 수 없습니다.
  • 배포에 더 많은 작업이 필요합니다. 보고서를 올바른 상대 경로에서 응용 프로그램과 함께 배포해야 합니다.
  • 보고서 소스의 보안이 취약해질 수 있습니다. 런타임에 배포 컴퓨터에서 보고서가 다른 위치로 이동하거나 제거될 위험이 있습니다.

ReportDocument 개체 모델을 사용하여 비포함 보고서에 바인딩하려면

Note참고

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

  1. 클래스 위쪽에 CrystalDecisions.CrystalReports.Engine 네임스페이스에 대한 "Imports" [Visual Basic] 또는 "using" [C#] 문을 추가합니다.
<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images\e2c9s1d7.alert_note(ko-kr,VS.90).gif" alt="Note" class="note" />참고</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>네임스페이스 접두사 없이 ReportDocument 클래스에 액세스할 수 있도록 이 네임스페이스를 선언해야 합니다.</p></td>
</tr>
</tbody>
</table>

``` vb
Imports CrystalDecisions.CrystalReports.Engine
```

``` csharp
using CrystalDecisions.CrystalReports.Engine;
```
  1. 현재 사용 중인 버전의 Crystal Reports에 대한 General Business 하위 디렉터리에서 World Sales Report.rpt 파일을 찾습니다. 샘플 보고서에 대한 자세한 내용은 "샘플 보고서 디렉터리"를 참조하십시오.

  2. World Sales Report.rpt를 포함하여 전체 파일 디렉터리 경로를 클립보드에 복사합니다.

  3. "프로젝트 설정"에서 만든 ConfigureCrystalReports() 메서드 내에서 reportPath 문자열 변수를 선언하고 이전 단계에서 복사한 World Sales Report 파일 디렉터리 경로가 포함된 문자열을 할당합니다.

    Dim reportPath As String = _
    "C:\Program Files\Microsoft Visual Studio 9.0\" _ & "Crystal Reports\Samples\En\Reports\General Business\" _ & "World Sales Report.rpt"
    
    string reportPath =
    "C:\\Program Files\\Microsoft Visual Studio 9.0\\" + "Crystal Reports\\Samples\\En\\Reports\\General Business\\" + "World Sales Report.rpt";
    
  4. 문자열 선언 아래에서 ReportDocument의 인스턴스를 선언합니다.

    Dim myReportDocument As ReportDocument = New ReportDocument()
    
    ReportDocument reportDocument = new ReportDocument();
    
  5. 비포함 보고서의 파일 디렉터리 경로가 포함된 문자열 변수를 ReportDocument에 로드합니다.

    myReportDocument.Load(reportPath)
    
    reportDocument.Load(reportPath);
    
  6. 로드된 비포함 보고서가 포함된 ReportDocument 인스턴스를 CrystalReportViewer 컨트롤의 ReportSource 속성에 할당합니다.

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

참고 항목