다음을 통해 공유


자습서: Session을 사용하여 ReportDocument 개체 모델 유지

이 자습서에서는 ReportDocument 개체 모델을 사용하고 런타임에 프로그래밍 방식으로 보고서를 변경합니다. 또한 웹 페이지를 다시 로드할 때 Session을 사용하여 이러한 변경 내용을 유지하는 방법도 배웁니다.

Session 상태 유지는 웹 응용 프로그램에만 필요하므로 Windows 프로젝트에는 이 자습서의 내용이 적용되지 않습니다.

Note참고

상태 유지에 대한 개요는 SDK 기본 사항에서 "Crystal Reports에 사용할 상태 유지 방식 선택"을 참조하십시오.

소개

이 자습서를 통해 만드는 프로젝트에서는 ReportDocument 개체 모델에서 보고서의 정렬 순서를 변경하는 두 개의 단추와 CrystalReportViewer 컨트롤을 포함하는 Web Form을 사용합니다.

먼저 Session 상태가 유지되지 않는 프로젝트를 구성합니다. 상태를 유지하지 않으면 단추 클릭 이벤트가 적용되는 동안에만 변경된 정렬 순서가 유지됩니다.

그런 다음 프로젝트에 Session 상태 유지를 추가합니다. ReportDocument 인스턴스는 인스턴스를 생성할 때와 ReportDocument 인스턴스의 상태가 변경될 때 Session에 배치됩니다.

보고서를 다시 표시해야 할 때마다 ReportDocument 인스턴스를 Session에서 검색하여 CrystalReportViewer 컨트롤에 바인딩합니다. 이러한 방식을 통해 사용자는 보고서를 표시할 때마다 최신 버전의 ReportDocument 인스턴스를 볼 수 있습니다.

Note참고

이 자습서에서는 ReportDocument 개체 모델의 수정된 내용을 유지해야 하므로 Session을 사용합니다. CrystalReportViewer 컨트롤 내에 포함된 제한된 개체 모델만 사용하려면 ViewState만 사용합니다.

Session을 사용하여 ReportDocument 개체를 유지할 때 다른 유지 모델이 사용됩니까?

Session을 사용하여 ReportDocument 개체를 유지할 때 다른 유지 모델이 사용됩니까?

예. 웹 서버 컨트롤에서는 유지를 위해 ViewState를 사용하는 반면 ASP.NET 웹 응용 프로그램의 개체에서는 일반적으로 Session을 사용하여 유지합니다. Crystal Reports for Visual Studio 웹 응용 프로그램은 개체 및 웹 서버 컨트롤을 사용하여 보고서와 상호 작용하기 때문에 상태 유지는 Session과 ViewState에서 공유됩니다.

  • Session은 런타임에 프로그래밍 방식으로 보고서와 상호 작용하는 ReportDocument 개체 모델을 유지합니다.
  • ViewState는 보고서를 표시하는 CrystalReportViewer 컨트롤을 유지합니다. 특히 CrystalReportViewer의 도구 모음에서 설정되는 표시 속성을 유지합니다. ViewState는 도구 모음의 단추를 통해 트리거되는 zoom, NextPage 같은 이벤트도 유지합니다.

ViewState 상태 유지는 자동으로 관리됩니다. 따라서 이 자습서에서는 Session 상태 유지에 대한 코드만 작성합니다.

샘플 코드

이 자습서에는 완성된 프로젝트 버전을 보여 주는 Visual Basic 및 C# 샘플 코드가 함께 제공됩니다. 완성된 버전에서 작업하려면 이 자습서의 지침에 따라 새 프로젝트를 만들거나 샘플 코드 프로젝트를 여십시오.

샘플 코드는 언어와 프로젝트 형식에 따라 다른 폴더에 저장되어 있습니다. 샘플 코드 버전별 폴더 이름은 다음과 같습니다.

  • C# 웹 사이트: CS_Web_RDObjMod_Session
  • Visual Basic 웹 사이트: VB_Web_RDObjMod_Session

이러한 샘플이 포함된 폴더를 찾으려면 "자습서의 샘플 코드 디렉터리"를 참조하십시오.

이 섹션에 포함된 내용:

참고 항목