보고서의 배경색 수정
이 부분에서는 보고서의 배경색을 수정하는 방법을 설명합니다.
먼저 배경색 선택에 필요한 DropDownList 컨트롤을 추가합니다.
배경색 변경에 필요한 컨트롤을 추가하려면
- Web Form 또는 Windows Form을 엽니다.
- 보기 메뉴에서 디자이너를 클릭합니다.
- 도구 상자에서 Label 컨트롤을 표의 2행, 1열로 끕니다.
- Label 컨트롤을 선택한 다음 속성 창에서 Text를 배경색 선택으로 설정합니다.
- 도구 모음에서 DropDownList 컨트롤(웹 사이트의 경우) 또는 ComboBox 컨트롤(Windows 프로젝트의 경우)을 표의 2행, 2열로 끕니다.
- DropDownList/ComboBox 컨트롤을 선택한 다음 속성 창에서 ID/Name를 "selectBackColor"로 설정합니다.
컨트롤의 기본값을 설정하려면
이제 배경색 목록과 보고서 구성 요소의 확인란에 대한 기본값을 설정하는 코드를 ConfigureCrystalReports() 메서드에 추가해야 합니다.
Web Form 또는 Windows Form을 엽니다.
보기 메뉴에서 코드를 클릭합니다.
그런 다음 ConfigureCrystalReports() 메서드 내에서 컨트롤의 기본값을 설정하는 코드를 추가합니다.
참고
웹 사이트를 빌드하는 경우 이러한 코드 행을 Not IsPostBack 조건 블록 내에 배치합니다. Windows 프로젝트를 빌드하는 경우 이러한 코드 행을 ConfigureCrystalReports() 메서드의 주 영역에 배치합니다.
selectBackColorDropDownList의 DataSource 속성에 KnownColor 열거형을 할당합니다.
selectBackColor.DataSource = System.Enum.GetValues(GetType(KnownColor))
selectBackColor.DataSource = System.Enum.GetValues(typeof(KnownColor));
웹 사이트의 경우 데이터 소스를 selectBackColorDropDownList에 바인딩합니다.
selectBackColor.DataBind()
selectBackColor.DataBind();
웹 사이트에서 배경색 선택 항목을 할당하려면
이제 selectBackColor DropDownList 선택 항목을 기반으로 보고서를 다시 표시하는 코드를 버튼 클릭 이벤트에 추가합니다.
웹 사이트에서 사용되는 이 코드는 Windows project에서 사용되는 코드와 다릅니다. 아래에서 웹 사이트 또는 Windows 프로젝트에 해당하는 절차를 선택하십시오.
Web Form을 엽니다.
보기 메뉴에서 코드를 클릭합니다.
클래스 서명 위에 System.Drawing 네임스페이스에 대한 "Imports" [Visual Basic] 또는 "using" [C#] 선언이 없으면 클래스 위에 해당 선언을 추가합니다.
``` vb
Imports System.Drawing
```
``` csharp
using System.Drawing;
```
redisplay_Click() 이벤트 처리기 내에서 다음 코드를 추가합니다. selectBackColor DropDownList에서 선택 항목을 문자열로 가져와 Color 클래스의 FromName() 메서드에 전달합니다. CrystalReportViewer 컨트롤의 BackColor 속성에 Color 값을 할당합니다.
myCrystalReportViewer.BackColor = Color.FromName(selectBackColor.SelectedItem.Text)
crystalReportViewer.BackColor = Color.FromName(selectBackColor.SelectedItem.Text);
Windows 프로젝트에서 배경색 선택 항목을 할당하려면
이제 Redisplay Report 버튼을 테스트할 준비가 되었습니다. 아래의 해당 단원으로 이동합니다.
Windows Form을 엽니다.
보기 메뉴에서 코드를 클릭합니다.
클래스 서명 위에 System.Drawing 네임스페이스에 대한 "Imports" [Visual Basic] 또는 "using" [C#] 선언이 없으면 클래스 위에 해당 선언을 추가합니다.
Imports System.Drawing
using System.Drawing;
redisplay_Click() 이벤트 처리기 내에 selectBackColorComboBox에서 선택 항목을 가져와 KnownColor 인스턴스로 캐스팅하는 코드를 추가합니다.
Dim mySelectedKnownColor As KnownColor = CType(selectBackColor.SelectedItem, KnownColor)
KnownColor selectedKnownColor = (KnownColor)selectBackColor.SelectedItem;
선택한 배경색이 투명하지 않은지 검사하는 조건 블록을 만듭니다.
If Not mySelectedKnownColor = KnownColor.Transparent Then End If
if (selectedKnownColor != KnownColor.Transparent) { }
If 블록 내에서 KnownColor 인스턴스를 System.Drawing.Color 클래스의 FromKnownName() 메서드에 전달합니다. CrystalReportViewer 컨트롤의 BackColor 속성에 Color 값을 할당합니다.
``` vb
myCrystalReportViewer.BackColor = System.Drawing.Color.FromKnownColor(mySelectedKnownColor)
```
``` csharp
crystalReportViewer.BackColor = System.Drawing.Color.FromKnownColor(selectedKnownColor);
```
redisplay Button 컨트롤을 테스트하려면
이제 Redisplay Report 버튼을 테스트할 준비가 되었습니다.
빌드 메뉴에서 솔루션 빌드를 클릭합니다.
빌드 오류가 발생하면 바로 수정합니다.
디버그 메뉴에서 시작을 클릭합니다.
이전 절차에서 추가한 ListBox 및 Button 컨트롤과 함께 DropDownList/ComboBox가 표시됩니다.
selectBackColor DropDownList에서 "Blue"를 선택합니다.
참고
보고서 요소 특히, Main_Page를 선택하여 표시되도록 합니다.
보고서 다시 표시를 클릭합니다.
페이지가 다시 로드되고 파란색을 배경으로 보고서가 표시됩니다.
Visual Studio로 돌아간 다음 중지를 클릭하여 디버그 모드를 종료합니다.