다음을 통해 공유


캐시된 포함 보고서 클래스에 바인딩

개체 모델

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

보고서 위치

보고서는 프로젝트에 포함됩니다.

설명

Visual Studio 프로젝트에 보고서를 포함하면 프로젝트에서 해당 보고서 파일을 나타내는 보고서 래퍼 클래스가 자동으로 생성됩니다. 또한 해당 보고서에 대한 캐시 관리 유틸리티 클래스도 자동으로 생성됩니다.

래퍼 클래스 사용에 대한 자세한 내용은 "포함 보고서 클래스에 바인딩"을 참조하십시오.

이 시나리오에서는 CrystalReportViewer 컨트롤을 캐시 관리 유틸리티 클래스에 바인딩하여 ASP.NET 캐시 개체에 캐시되는 보고서가 자동 처리되도록 합니다.

Note참고

보고서를 캐시하는 방법 및 캐시 관리 유틸리티 클래스에 대한 자세한 내용은 "일반 및 캐시된 보고서 비교"를 참조하십시오.

캐싱 사용

캐싱은 신중히 관리하지 않을 경우 시스템 리소스를 지나치게 많이 사용할 수 있으므로 사용이 제한되며 한정적입니다. 캐싱 사용 기준에 대한 자세한 내용은 ""공유 수준이 높은" 보고서 캐시"를 참조하십시오.

비포함 보고서 캐싱

비포함 보고서의 캐싱을 관리하려면 사용자 고유의 캐시 관리 유틸리티 클래스를 만들어야 합니다. 자세한 내용은 "캐시 관리 유틸리티 클래스에 로드된 비포함 보고서에 바인딩"을 참조하십시오.

장점

  • 공유에 특히 적합합니다. 공유 수준이 높고 매개 변수나 로그온 정보가 거의 변경되지 않는 보고서를 저장하는 데 좋습니다.
  • 데이터 액세스를 최적화할 수 있습니다. 공유 수준이 높은 보고서의 크기가 매우 크거나 쿼리가 너무 복잡하여 이를 검색하는 데 몇 분 정도 걸리는 경우, 캐시 관리 유틸리티 클래스로 데이터에 더 빠르게 액세스할 수 있습니다.

단점

  • 서버 부담이 증가합니다. ASP.NET 캐시 개체에 유지되는 보고서로 인해 서버의 메모리 리소스 사용량이 늘어날 수 있습니다.
  • 상태 유지에 어려움이 따릅니다. 캐시에는 보고서 인스턴스의 변경 여부를 확인하고 변경된 보고서 인스턴스를 다시 캐시할 수 있는 특정 종속성이 있습니다. 그러나 데이터베이스가 변경된 경우에는 해당 변경 사항을 반영할 수 있도록 캐시의 보고서 인스턴스가 새로 고쳐지지 않습니다.
  • 리소스를 많이 사용합니다. 보고서에 포함된 매개 변수를 다른 매개 변수 문자열에서 자주 호출하는 경우, 특히 이러한 매개 변수 중 하나가 사용자 ID인 경우에는 보고서를 매번 새로 캐시한다는 의미입니다. 이러한 과정에서 많은 시스템 리소스가 사용됩니다. 보고서의 공유 수준이 높지 않으면 보고서 인스턴스를 세션 개체에 할당해야 합니다. "Session 및 ReportDocument 개체 모델의 상태 유지"를 참조하십시오.

캐시 관리 유틸리티 클래스에 바인딩하려면

Note참고

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

  1. ConfigureCrystalReports() 메서드("프로젝트 설정"에서 만든 메서드) 내에서 기존의 코드 줄을 삭제하여 보고서 래퍼 클래스를 캐시 관리 유틸리티 클래스로 바꿉니다.

  2. Hierarchical Grouping.rpt에 관련된 캐시 관리 유틸리티 클래스를 인스턴스화합니다.

``` vb
Dim cachedHierarchicalGroupingReport As CachedHierarchical_Grouping
= New CachedHierarchical_Grouping()
```

``` csharp
CachedHierarchical_Grouping cachedHierarchicalGroupingReport = new
CachedHierarchical_Grouping();
```
  1. CrystalReportViewer 컨트롤에 캐시 관리 유틸리티 인스턴스를 전달합니다.

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

참고 항목