다음을 통해 공유


웹 사이트의 ListBox 컨트롤 구성

이 부분에서는 웹 사이트의 ListBox 컨트롤을 구성하는 방법을 설명합니다. Windows 프로젝트를 만드는 경우 "Windows 프로젝트의 ListBox 컨트롤 구성"을 참조하십시오.

이제 Button 컨트롤의 클릭 이벤트 처리기를 만든 다음 이 이벤트 처리기에 코드를 추가할 수 있습니다. 이벤트 처리기는 ListBox 컨트롤에서 사용자가 선택한 값에 따라 CrystalReportViewer 클래스의 도구 모음 속성에 부울 값을 설정합니다.

이 이벤트 처리기를 만들기 전에 두 개의 열거형 CeWebCRVReportOptions 및 CeWebCRVToolbarOptions를 만들어야 합니다.

이러한 열거형은 선택 가능한 보고서 요소와 도구 모음 요소 목록을 제공합니다.

CeWebCRVReportOptions 열거형을 만들려면

  1. 솔루션 탐색기에서 웹 사이트 이름을 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 새 항목 추가를 클릭합니다.

  2. 새 항목 추가 대화 상자의 템플릿 뷰에서 클래스를 선택합니다.

  3. 이름 필드에 "CeWebCRVReportOptions"를 입력한 다음 추가를 클릭합니다.

    Note참고

    App_Code 디렉터리에 이 클래스를 저장할지 묻는 메시지가 나타날 수 있습니다. 예 단추를 클릭합니다.

  4. 클래스 시그니처에서 class라는 단어를 "enum"으로 변경하여 클래스를 열거형으로 변환합니다.

    Note참고

    Visual Basic의 경우 클래스의 여는 시그니처와 닫는 시그니처를 모두 열거형으로 변경해야 합니다.

  5. 열거형에는 생성자가 없으므로 C# 버전의 코드에 제공되는 기본 생성자 메서드를 삭제합니다.

  6. 열거형 안에 다음 값을 입력합니다.

    Toolbar
    Group_Tree
    Main_Page
    Enable_Separate_Pages
    
    Toolbar,
    Group_Tree,
    Main_Page,
    Enable_Separate_Pages
    
  7. 파일 메뉴에서 모두 저장을 클릭합니다.

CeWebCRVToolbarOptions 열거형을 만들려면

  1. 솔루션 탐색기에서 웹 사이트 이름을 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 새 항목 추가를 클릭합니다.

  2. 새 항목 추가 대화 상자의 템플릿 뷰에서 클래스를 선택합니다.

  3. 이름 필드에 CeWebCRVToolbarOptions를 입력한 다음 추가를 클릭합니다.

    Note참고

    App_Code 디렉터리에 이 클래스를 저장할지 묻는 메시지가 나타날 수 있습니다. 예 단추를 클릭합니다.

  4. 클래스 시그니처에서 class라는 단어를 "enum"으로 변경하여 클래스를 열거형으로 변환합니다.

<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images\e2c9s1d7.alert_note(ko-kr,VS.90).gif" alt="Note" class="note" />참고</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>Visual Basic의 경우 클래스의 여는 시그니처와 닫는 시그니처를 모두 열거형으로 변경해야 합니다.</p></td>
</tr>
</tbody>
</table>
  1. 열거형에는 생성자가 없으므로 C# 버전의 코드에 제공되는 기본 생성자 메서드를 삭제합니다.

  2. 열거형 안에 다음 값을 입력합니다.

    Group_Tree_Button
    Export_Button
    Print_Button
    View_List_Button
    Drill_Up_Button
    Page_Navigation_Button
    Go_to_Page_Button
    Search_Button
    Zoom_Button
    Crystal_Logo
    
    Group_Tree_Button,
    Export_Button,
    Print_Button,
    View_List_Button,
    Drill_Up_Button,
    Page_Navigation_Button,
    Go_to_Page_Button,
    Search_Button,
    Zoom_Button,
    Crystal_Logo
    
  3. 파일 메뉴에서 모두 저장을 클릭합니다.

열거형으로 ListBox 컨트롤을 채우려면

이제 ListBox 컨트롤을 CrystalReportViewer 도구 모음에 사용할 수 있는 속성을 나타내는 열거형 값으로 채웁니다.

  1. Web Form을 엽니다.

  2. 보기 메뉴에서 코드를 클릭합니다.

  3. ConfigureCrystalReports() 메서드 내에 Not IsPostBack 조건 블록을 추가합니다.

    Note참고

    ConfigureCrystalReports() 메서드는 이 자습서의 시작 부분에서 "프로젝트 설정"을 수행하는 동안 만든 것입니다. 이 자습서를 제대로 완료하려면 "프로젝트 설정"을 먼저 수행해야 합니다.

    If Not IsPostBack Then
    
    End If
    
    if (!IsPostBack)
    {
    }
    
  4. 조건 블록 내에서 listCRVReportListBox 컨트롤의 DataSource 속성을 CeWebCRVReportOptions enum 열거형의 값으로 설정합니다.

    listCRVReport.DataSource = System.Enum.GetValues(GetType(CeWebCRVReportOptions))
    
    listCRVReport.DataSource = System.Enum.GetValues(typeof(CeWebCRVReportOptions));
    
  5. listCRVReportListBox 컨트롤의 DataBind() 메서드를 호출하여 값을 컨트롤에 바인딩합니다.

    listCRVReport.DataBind()
    
    listCRVReport.DataBind();
    
  6. 그런 다음 listCRVToolbarListBox 컨트롤의 DataSource 속성을 CeWebCRVToolbarOptions 열거형의 값으로 설정합니다.

    listCRVToolbar.DataSource = System.Enum.GetValues(GetType(CeWebCRVToolbarOptions))
    
    listCRVToolbar.DataSource = System.Enum.GetValues(typeof(CeWebCRVToolbarOptions));
    
  7. 이제 listCRVToolbarListBox 컨트롤의 DataBind() 메서드를 호출하여 값을 컨트롤에 바인딩합니다.

    listCRVToolbar.DataBind()
    
    listCRVToolbar.DataBind();
    
  8. Not IsPostBack 조건 블록 외부에서 Chart.rpt 파일을 CrystalReportViewer 컨트롤의 ReportSource 속성에 바인딩합니다.

    샘플 보고서에 대한 자세한 내용은 "샘플 보고서 디렉터리"를 참조하십시오.

    myCrystalReportViewer.ReportSource = "C:\Program Files\Microsoft Visual Studio 9.0/Crystal Reports\Samples\En\Reports\Feature Examples\Chart.rpt"
    
    crystalReportViewer.ReportSource = "C:\\Program Files\\Microsoft Visual Studio 9.0\\Crystal Reports\\Samples\\En\\Reports\\Feature Examples\\Chart.rpt";
    

웹 사이트의 redisplay Button 컨트롤을 코딩하려면

이제 Button 컨트롤의 클릭 이벤트에 대한 코드를 추가할 수 있습니다. 클릭 메서드를 통해 CrystalReportViewer 클래스의 보고서 및 도구 모음 요소에 대한 부울 값을 설정해야 합니다. 요소가 선택된 경우 부울 값은 true로 설정되며 보고서나 도구 모음 요소가 표시됩니다. 속성을 선택하지 않으면 부울 값이 False로 설정되고 보고서나 도구 모음 요소가 표시되지 않습니다.

  1. Web Form을 엽니다.

  2. 보기 메뉴에서 디자이너를 클릭합니다.

  3. redisplay Button 컨트롤을 두 번 클릭합니다.

    보고서의 코드 숨김 클래스가 나타나고 자동 생성된 redisplay_Click() 이벤트 메서드가 표시됩니다.

  4. redisplay_Click() 이벤트 메서드 내에서 listCRVReport 및 listCRVToolbarListBox 컨트롤에 있는 각 항목의 Selected 속성을 호출합니다.

    Selected 속성은 CrystalReportViewer 도구 모음 속성을 설정하기 위한 부울 값을 반환합니다.

    Note참고

    CrystalReportViewer 보고서 및 도구 모음 요소는 CeWebCRVReportOptions 및 CeWebCRVToolbarOptions 열거형의 해당 값으로 설정됩니다. 열거형 클래스의 값을 통해 문자열이 반환됩니다. 이 문자열은 정수로 변환해야 합니다.

    myCrystalReportViewer.HasToggleGroupTreeButton = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Group_Tree_Button)).Selected
    myCrystalReportViewer.HasExportButton = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Export_Button)).Selected
    myCrystalReportViewer.HasPrintButton = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Print_Button)).Selected
    myCrystalReportViewer.HasViewList = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.View_List_Button)).Selected
    myCrystalReportViewer.HasDrillUpButton = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Drill_Up_Button)).Selected
    myCrystalReportViewer.HasPageNavigationButtons = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Page_Navigation_Button)).Selected
    myCrystalReportViewer.HasGotoPageButton = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Go_to_Page_Button)).Selected
    myCrystalReportViewer.HasSearchButton = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Search_Button)).Selected
    myCrystalReportViewer.HasZoomFactorList = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Zoom_Button)).Selected
    myCrystalReportViewer.HasCrystalLogo = listCRVToolbar.Items(Convert.ToInt32(CeWebCRVToolbarOptions.Crystal_Logo)).Selected
    myCrystalReportViewer.DisplayToolbar = listCRVReport.Items(Convert.ToInt32(CeWebCRVReportOptions.Toolbar)).Selected
    myCrystalReportViewer.DisplayGroupTree = listCRVReport.Items(Convert.ToInt32(CeWebCRVReportOptions.Group_Tree)).Selected
    myCrystalReportViewer.DisplayPage = listCRVReport.Items(Convert.ToInt32(CeWebCRVReportOptions.Main_Page)).Selected
    myCrystalReportViewer.SeparatePages = listCRVReport.Items(Convert.ToInt32(CeWebCRVReportOptions.Enable_Separate_Pages)).Selected
    
    crystalReportViewer.HasToggleGroupTreeButton = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Group_Tree_Button)].Selected;
    crystalReportViewer.HasExportButton = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Export_Button)].Selected;
    crystalReportViewer.HasPrintButton = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Print_Button)].Selected;
    crystalReportViewer.HasViewList = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.View_List_Button)].Selected;
    crystalReportViewer.HasDrillUpButton = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Drill_Up_Button)].Selected;
    crystalReportViewer.HasPageNavigationButtons = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Page_Navigation_Button)].Selected;
    crystalReportViewer.HasGotoPageButton = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Go_to_Page_Button)].Selected;
    crystalReportViewer.HasSearchButton = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Search_Button)].Selected;
    crystalReportViewer.HasZoomFactorList = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Zoom_Button)].Selected;
    crystalReportViewer.HasCrystalLogo = listCRVToolbar.Items[Convert.ToInt32(CeWebCRVToolbarOptions.Crystal_Logo)].Selected;
    crystalReportViewer.DisplayToolbar = listCRVReport.Items[Convert.ToInt32(CeWebCRVReportOptions.Toolbar)].Selected;
    crystalReportViewer.DisplayGroupTree = listCRVReport.Items[Convert.ToInt32(CeWebCRVReportOptions.Group_Tree)].Selected;
    crystalReportViewer.DisplayPage = listCRVReport.Items[Convert.ToInt32(CeWebCRVReportOptions.Main_Page)].Selected;
    crystalReportViewer.SeparatePages = listCRVReport.Items[Convert.ToInt32(CeWebCRVReportOptions.Enable_Separate_Pages)].Selected;
    

redisplay Button 컨트롤을 테스트하려면

이제 CrystalReportViewer 도구 모음을 사용자 지정하는 프로젝트를 빌드하고 실행할 준비가 되었습니다.

  1. 빌드 메뉴에서 솔루션 빌드를 클릭합니다.

  2. 빌드 오류가 발생하면 바로 수정합니다.

  3. 디버그 메뉴에서 시작을 클릭합니다.

    listCRVReport 및 listCRVToolbarListBox 컨트롤은 CrystalReportViewer 보고서와 도구 모음 옵션의 전체 목록을 표시합니다.

  4. 도구 모음 옵션 목록 상자에서 "Page_Navigation_Button", "Print_Button" 및 "Export_Button"을 선택합니다.

  5. 보고서 옵션 목록 상자에서 "Toolbar", "Group_Tree" 및 "Main_Page"를 선택합니다.

  6. 보고서 다시 표시를 클릭합니다.

    페이지가 다시 로드되어 도구 모음, 그룹 트리 및 주 페이지가 표시된 CrystalReportViewer 컨트롤이 나타납니다. 도구 모음에는 페이지 탐색, 인쇄 및 내보내기 단추만 표시됩니다.

  7. Visual Studio로 돌아간 다음 중지를 클릭하여 디버그 모드를 종료합니다.