다음을 통해 공유


포함 및 비포함 보고서 비교

Crystal Reports SDK를 사용하여 빌드할 응용 프로그램을 계획할 때 고려해야 할 가장 중요한 사항 중 하나는 포함 보고서를 사용할지 비포함 보고서를 사용할지 선택하는 일입니다. 보고서 포함 여부에 영향을 미치는 SDK 기본 사항에 대해 잘 알고 있으면 Crystal Reports for Visual Studio 프로젝트에 가장 적합한 구조를 선택하는 데 도움이 됩니다.

포함 보고서와 비포함 보고서의 차이

포함 보고서는 Visual Studio 프로젝트에서 만들어졌거나 이 프로젝트에 가져온 보고서입니다. 보고서가 프로젝트에 포함되면 해당 보고서에 대한 래퍼 클래스가 자동으로 생성됩니다.

비포함 보고서는 Visual Studio 프로젝트 외부에 있는 보고서입니다. 프로그래밍 방식으로 보고서를 조작하기 위해 보고서에 액세스하고 보고서를 개체 모델에 로드하는 방법은 다양하지만 보고서는 항상 프로젝트의 외부에 유지됩니다.

포함 보고서 작동 방식

프로젝트에서 보고서를 만들거나 보고서를 프로젝트로 가져오면 해당 보고서와 동일한 이름의 래퍼 클래스가 생성됩니다. 이 래퍼 클래스는 프로젝트에서 해당 보고서를 표현하며, 이를 가리켜 보고서를 래핑한다고도 합니다. 이후로 프로젝트의 모든 코드는 원본 보고서 파일과 상호 작용하는 것이 아니라 보고서를 나타내기 위해 작성된 보고서 클래스와 상호 작용하게 됩니다.

프로젝트를 컴파일하면 다른 프로젝트 리소스의 경우와 마찬가지로, 보고서와 더불어 해당 래퍼 클래스도 어셈블리에 포함됩니다.

보고서 래퍼 클래스는 공통 기본 클래스인 ReportDocument에서 파생되며, ReportDocument의 모든 속성과 메서드를 상속합니다.

Note참고

이 설명서의 이전 버전에서는 포함 보고서를 "강력한 형식의 보고서"라고 지칭했습니다. 이제는 Visual Studio 프로젝트에 추가되거나 가져온 보고서를 나타내기 위해 "포함"이라는 용어를 사용합니다.

ReportDocument는 ReportDocument 개체 모델의 루트 클래스입니다.

비포함 보고서 작동 방식

비포함 보고서는 항상 외부에서 액세스되며 여러 가지 방법으로 SDK에서 액세스할 수 있습니다.

포함 보고서와 달리 비포함 보고서를 프로젝트에 가져오는 것은 불가능하므로 보고서 래퍼 클래스가 생성되지 않습니다. 그 대신, 비포함 보고서는 런타임에 자체적인 방식에 따라 개체 모델 중 하나에 로드됩니다.

  • ReportDocument 개체 모델의 경우 ReportDocument.Load() 메서드를 사용하여 비포함 보고서를 ReportDocument 개체 모델에 로드합니다.
    Note참고

    이 방법은 파일 디렉터리 경로에 있는 비포함 보고서에만 적용됩니다.

  • CrystalReportViewer 개체 모델의 경우 CrystalReportViewer.ReportSource 속성을 사용하여 비포함 보고서를 컨트롤에 직접 바인딩합니다.
    Note참고

    ReportDocument 개체 모델의 사용이 더욱 권장됩니다. 자세한 내용은 "개체 모델 선택"을 참조하십시오.

포함 보고서 또는 비포함 보고서를 사용하는 경우

프로젝트 배포 과정을 단순화하려면 포함 보고서를 사용하는 것이 좋습니다. 이렇게 하면 작업할 파일의 수가 줄어들 뿐 아니라, 잘못된 파일 디렉터리 경로에 보고서가 배치되었는지 여부를 신경 쓸 필요가 없어집니다. 이 경우 보고서가 수정될 수 있는 위험에 노출되지 않으므로 보안도 더욱 강화됩니다.

또한 Visual Studio를 사용하여 Crystal Reports를 개발 및 배포하는 것이 처음인 경우에도 포함 보고서를 사용하는 것이 훨씬 간편합니다. 포함 보고서는 항상 프로젝트에서 클래스로 유지되며 IntelliSense를 통해 사용할 수 있고 개체 브라우저에 표시됩니다. 보고서가 파일 디렉터리에서 옮겨지거나 삭제되는 문제를 걱정할 필요가 없고 경로를 올바르게 입력했는지 신경 쓸 필요도 없어집니다.

포함 보고서는 단순성과 보안성이 뛰어난 반면, 추가적인 작업을 필요로 합니다. 포함 보고서를 수정하려면 전체 프로젝트를 다시 컴파일해야 합니다. 보고서를 정기적으로 수정해야 한다면, 어셈블리를 매번 다시 컴파일할 필요 없이 보고서에 쉽게 액세스하고 수정할 수 있도록 비포함 상태로 보고서를 유지하는 것이 좋습니다. 또한 포함 보고서는 크기에 대한 제한이 있습니다. 용량이 매우 큰 보고서는 포함 리소스로 컴파일합니다.

또한 비포함 보고서를 사용하면 확장성에 있어서도 이점을 얻을 수 있습니다.

Crystal Reports for Visual Studio 2005 및 Crystal Reports Basic for Visual Studio 2008의 웹 사이트에서는 비포함 보고서만 사용할 수 있습니다.

보고서 바인딩 시나리오에서 포함 보고서와 비포함 보고서를 바인딩하는 여러 가지 방법을 확인할 수 있습니다("보고서 바인딩 시나리오 선택" 참조). 두 유형의 보고서에 대한 일반 클래스로 ReportDocument를 사용하는 방법도 살펴볼 수 있습니다. 이렇게 하면 포함 보고서와 비포함 보고서 간에 방식을 전환해야 하는 경우 코드 변경을 최소화하여 원하는 결과를 얻을 수 있습니다.