본문 바로가기

Development/.Net

[.NET] 크리스탈 리포트 생성 및 호출하기 - Windows Live

반응형

[.NET] 크리스탈 리포트 생성 및 호출하기

이 자료는 서린정보기술(주)에서 발체한 내용입니다. 그럼...

이번호에서는 지난호에 생성한 ASP.NET 프로젝트인 Sample_CrystalReport에서 크리스탈 리포트를 생성한 후 웹페이지에 리포트를 나타내 보기로 하겠습니다.

   

무조건 따라하기

   

[1 단계] 크리스탈 리포트 추가 및 생성

   

[그림 부록A.6] ASP.NET 프로젝트에서 새항목 추가하기

   

[그림 부록A.6 설명]

크리스탈 리포트를 생성하기위해서 "새항목 추가"를 선택한다.

   

[그림 부록A.7] 템플릿에서 "Crystal Report" 선택 추가

   

[그림 부록A.7 설명]

그림 우측의 템플릿에서 번호j과 같이"Crystal Report"항목을 선택하고, 번호k번 항목에 리포트 이름을 적은후 번호l번의 "열기" 버튼을 클릭한다.

[2 단계] 크리스탈 리포트 형식 선택

   

   

[그림 부록A.8] 크리스탈 리포트 만들기 초기화면

   

[그림 부록A.8 설명]

크리스탈 리포트를 어떤 형태 및 양식으로 작성할 것 인지를 선택하는 초기화면이다. 번호와 같이 j "보고서 전문가 사용" k "표준" 형식을 선택한 후 "확인'버튼을 클릭한다.

[3 단계] OLE DB 연결

   

   

[그림 부록A.9] OLE DB 연결 화면

   

[그림 부록A.9 설명]

리포팅 하고자하는 DB 서버의 DB를 선택하여 연결시키는 화면으로 번호j 항목의 좌측 확장부호"+"를 클릭한다.

   

[그림 부록A.10] DB 드라이버 선택 화면

   

[그림 부록A.10 설명]

DB 드라이버 공급자를 선택한다. 여기에서는 MS-SQL 2000을 사용하는 관계로 "Microsoft OLE DB Provider for SQL Server" 선택

   

[그림 부록A.11] DB 서버 및 DB 연결 정보 Setting 화면

   

[그림 부록A.11 설명]

리포트에 연결될 테이블이 존재하는 DB 서버의 연결 정보를 셋팅해 준 후 "다음" 클릭

   

[그림 부록A.12] 테이블 선택 화면

   

[그림 부록A.12 설명]

실제적으로 리포팅할 테이블을 번호j과 같이 선택한 후 번호k에 있는 "테이블 삽입" 버튼을 클릭하면 번호l과 같이 선택한 테이블 "LoginID_TB" 이 나타난다. "다음" 버튼 클릭.

   

[그림 부록A.13] 테이블의 컬럼 선택 화면

   

[그림 부록A.13 설명]

그림 좌측j 과같이 선택하고자하는 테이블의 컬럼리스트들 중에서 리포트에 나타낼 컬럼들을 선택한 후 번호k의 "추가" 버튼을 클릭하면 그림 우측 번호l과 같이 리포트에 나타낼 리스트에 추가된다.

   

[그림 부록A.14] 리포트에서 그룹핑할 컬럼 선택 화면

   

[그림 부록A.14 설명]

그림 좌측의 보고서에 나타낼 컬럼들중에서 그룹핑할 컬럼을 선택한 후 "추가" 버튼 클릭.

   

[그림 부록A.15] 리포트에서 합계를 구할 컬럼 선택 화면

   

[그림 부록A.15 설명]

그림 좌측의 보고서에 나타낼 컬럼들중에서 하단부에 합계를 나타낼 필드가 있는경우, 해당 컬럼을 선택한 후 "추가" 버튼 클릭

   

[그림 부록A.16] 리포트 그룹 정렬 화면

   

[그림 부록A.16 설명]리포트의 그룹을 값에따라 정렬시킨다

   

[그림 부록A.17] 리포트 그래픽 선택 화면

   

[그림 부록A.17 설명]

리포트를 텍스트가 아닌 그래픽으로 나타내고자 할경우, 표현 형식을 선택할 수 있다.

   

[그림 부록A.18] 데이터 하위 집합 선택 화면

   

[그림 부록A.18 설명]

옵션으로써 리포트에 나타낼 정보의 하위 집합만 보일수 있도록 필터링할 수 있는 기능이다.

   

[그림 부록A.19] 리포트 스타일 선택 화면

   

[그림 부록A.19 설명]

리포트 제목 및 화면에 보여줄 스타일을 선택하는 화면이다.

   

[그림 부록A.20] 리포트 생성 화면

   

[그림 부록A.20 설명]

[그림 부록A.19]에서 번호l의 "마침"버튼을 클릭함으로써 나타나는 최종 크리스탈 리포트 생성화면이다. 이로써 하나의 "New_CrystalReport.rpt" 라는 리포트가 만들어진 것이다.

[4 단계] ASP.NET 화면 구성 및 C# 소스 코딩

   

   

[그림 부록A.21] 크리스탈 뷰어 설치

   

[그림 부록A.21 설명]

크리스탈 리포트를 ASP.NET 웹화면에 나타내기위해서는 "CrystalReportViewer" 웹컨트롤러가 필요하므로 마우스로 끌어서 웹화면에 내려놓는다.

   

[그림 부록A.22] 명렬 버튼 설치

   

[그림 부록A.22 설명]

생성된 크리스탈 리포트를 웹 화면에 나타내기위한 명령 버튼을 설치하고 여기에 C# 언어를 이용하여 소스를 생성해 본다.

   

[그림 부록A.23] 화면 디자인 완료

   

[그림 부록A.23 설명]

이제 웹 화면을 모두 디자인 했으므로 번호j의 크리스탈 리포트 뷰어에

"New_CrystalReport.rpt"라는 리포트를 연결해서 웹화면에 나타내는 소스를 번호k의 "검색" 버튼에 C#으로 작성해 본다.

   

"검색" 버튼에 들어갈 소스를 포함하여 현재까지의 ASP.NET의 C# 소스부분만을 살펴보면 아래 와 같다.

   

[소스 파일명 : WebForm1.aspx.cs]

   

--------------------------------------------------------------------

//ASP.NET 프로젝트 생성시 디폴트로 포함되는 컴포넌트

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

// 크리스탈 리포트 이용시 추가로 포함시키는 컴포넌트

using Microsoft.Win32;

using CrystalDecisions.Web;

using CrystalDecisions.Shared;

// ReportDocument 생성시 필요한 컴포넌트

using CrystalDecisions.CrystalReports.Engine;

   

namespace Sample_CrystalReport

{

     /// <summary>

     /// WebForm1에 대한 요약 설명입니다.

     /// </summary>

     public class WebForm1 : System.Web.UI.Page

     {

          protected CrystalDecisions.Web.CrystalReportViewer CrystalReportViewer1;

          protected System.Web.UI.WebControls.Button btnView;

   

          private void Page_Load(object sender, System.EventArgs e)

          {

          // 여기에 사용자 코드를 배치하여 페이지를 초기화합니다.

          }

   

         #region Web Form Designer generated code

          override protected void OnInit(EventArgs e)

          {

          //

          // CODEGEN: 이 호출 ASP.NET Web Form 디자이너에 필요합니다.

          //

          InitializeComponent();

          base.OnInit(e);

          }

   

          /// <summary>

          /// 디자이너 지원에 필요한 메서드입니다.

          /// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오.

          /// </summary>

          private void InitializeComponent()

          {

          this.btnView.Click += new System.EventHandler(this.Button1_Click);

          this.Load += new System.EventHandler(this.Page_Load);

          }

          #endregion

//

          // "검색"버튼 클릭시 크리스탈 리포트를 리포트 뷰어에 연결한후 화면에 보여주는 부분

          //

   

******************************************************************************

          private void Button1_Click(object sender, System.EventArgs e)

          // 화면에서 검색버튼 클릭시

          // 처리 이벤트

          {

               // 문서 인스턴스 생성 부분

               ReportDocument oRpt = new ReportDocument();               

   

               // 생성된 인스턴스에 생성된 리포트를 로딩하는 부분

   

oRpt.Load("C:\\Inetpub\\wwwroot\\Sample_

CrystalReport\\New_CrystalReport.rpt");

   

               // 로딩된 리포트를 크리스탈 뷰어에 연결시키는 부분

          CrystalReportViewer1.ReportSource = oRpt;

   

               //

               //출력부분

               //               

   

               //기본 프린터 셋팅하는부분:프린터 이름 명시

               oRpt.PrintOptions.PrinterName = "HP LaserJet 2200 Series PCL 6";

   

               //인쇄부수,가로,세로여부(true:세로,false:가로), 인쇄시작 페이지,인쇄 끝 페이지

               oRpt.PrintToPrinter(1,true,1,1);               

   

               // 리포트 내용중 텍스트 검색방법

               //CrystalReportViewer1.SearchForText("홍길동", SearchDirection.Forward);

******************************************************************************

<***** ←안에 내용들은 "검색"버튼 클릭시 발생하는 클릭 이벤트이다.>

   

          }

          private String GetSampleReportsDir()

          {

               // Get the path VS was installed to

               RegistryKey regKey = Registry.LocalMachine;

               regKey =

               regKey.OpenSubKey("Software\\Microsoft

               \\VisualStudio\\7.0\\Setup\\VS");

               string dir = ""; // regKey.GetValue("ProductDir").ToString();

               dir += "C:\\Inetpub\\wwwroot\\Sample_CrystalReport\\";

   

               return dir;

          }

   

}

   

}

   

--------------------------------------------------------------------

이상과 같이 "검색" 버튼에 소스를 작성하고, 실제로 실행하고서 검색 버튼 클릭시 나타나는 화면 아래와 같다.

   

[그림 부록A.24] 실행 화면

   

[그림 부록A.24 설명]

실행후 "검색" 버튼을 클릭해보면 하단부에 실제 데이터가 나타나는 화면이다.

정 리

여기까지 부록A에서는 생성된 크리스탈 리포트를 뷰어에 연결한다음 웹페이지에 나타내는 방법과

출력해보는 경우를 실습해보았습니다 웹에서는 C/S와는 달리 리포트를 다루는데있어서 매우 힘든

부분이 있습니다. 이 실습을 통하여 간단히 리포트를 작성하고 출력하는데 조금이나마 도움이 되었으면 하는 바램이고, 크리스탈 리포트에 숨어져있는 여러가지 기능들을 살펴보는 계기가 되었으면합니다.

   

<http://oddcube.spaces.live.com/Blog/cns!FB22AC2E2B575158!234.entry>에서 삽입

반응형

'Development > .Net' 카테고리의 다른 글

Visual Studio 2008 C# 컴파일러 생성 문제  (0) 2009.10.15
ASP.NET Login  (0) 2009.08.03
Exception (예외) 처리  (0) 2009.06.30
자동 로그인  (0) 2009.06.04
Visual Studio 2008 활용팁 노트정리  (0) 2009.06.04