부록: 향상된 이산 매개 변수 코드
지금까지 이산 매개 변수 값이 포함된 보고서를 만들고, 일반적인 형식(ArrayList)으로 일련의 값을 받아 특정한 매개 변수 필드 이름(PARAMETER_FIELD_NAME 상수)에 따라 보고서에 적용하는 도우미 메서드를 만드는 방법을 설명했습니다.
Visual Studio 2005 이상 또는 Crystal Reports Developer를 설치한 경우 향상된 API를 사용하여 Crystal 보고서에 이산 매개 변수를 설정할 수 있습니다. Crystal Reports Developer API를 사용하면 이산 매개 변수를 설정하는 데 필요한 코드의 양을 최소화할 수 있습니다.
이전 절차에서는 SetCurrentValuesForParameterField() 도우미 메서드를 만드는 방법을 설명했습니다.
이 자습서에서는 이 도우미 메서드를 삭제하고 대신 ReportDocument 클래스의 SetParameterValue() 메서드를 호출하는 방법을 설명합니다.
SetParameterValue() 메서드는 다음과 같은 메서드로 오버로드됩니다.
- SetParameterValue(int index, object value)
- SetParameterValue(string parameterFieldName, object value)
- SetParameterValue(string parameterFieldName, object value, string subreport)
매개 변수 필드의 기본값을 충족하는 값을 가진 모든 개체 형식을 전달할 수 있습니다. 이 개체는 매개 변수 값의 목록이 저장된 Array 인스턴스가 될 수 있습니다.
사전 요구 사항:
"자습서: 이산 매개 변수 읽기 및 설정"의 지침에 따라 프로젝트를 만들어야 합니다.
"코드에서 직접 매개 변수 설정" 작업을 진행하는 경우에는 PARAMETER_FIELD_NAME 상수만 만들면 됩니다. 이 경우, SetCurrentValuesForParameterField() 도우미 메서드를 만들 필요가 없습니다.
"자습서: 이산 매개 변수 읽기 및 설정"의 지침에 따라 만든 프로젝트가 이미 준비되어 있는 경우 ConfigureCrystalReports() 메서드 내의 호출과 SetCurrentValuesForParameterField() 도우미 메서드를 삭제합니다.
이산 매개 변수에 대해 SetParameterValue() 메서드를 사용하려면
이 자습서의 완성된 프로젝트를 엽니다.
Web Form 또는 Windows Form을 엽니다.
보기 메뉴에서 코드를 클릭합니다.
ConfigureCrystalReports() 메서드 내에서, 보고서를 CrystalReportViewer 컨트롤의 ReportSource 속성에 바인딩하는 코드 줄 위에 CustomerByCity 클래스의 SetParameterValue() 메서드를 호출하는 코드를 작성합니다. Array 인스턴스의 매개 변수 필드 이름과 매개 변수 값을 이 메서드에 전달합니다.
customersByCityReport.SetParameterValue(PARAMETER_FIELD_NAME, arrayList.ToArray())
customersByCityReport.SetParameterValue(PARAMETER_FIELD_NAME, arrayList.ToArray());
이제 프로젝트를 빌드하고 실행하여 이산 매개 변수를 읽고 설정할 준비가 되었습니다.