크리스탈 리포트도 처음 해보는데 2일만에 끝내야 한다
인터넷 고수들의 도움으로 슬슬 마무리가 되는데 잼있기도 하고 어렵다 ㅎㅎ
개발자 홧팅!!
==========================================================================
[펌] http://hoons.kr/lecture/lectureview.asp ··· ind%3D27
==========================================================================
저번 강좌에서는 간단한 리포트 파일을 만들어 보았습니다. crystalreport1.rpt라는 파일을 만든것을 기억하고 있을 것입니다. 음;; 그리고 크리스탈리포트를 만들기 위해서 웹프로젝트에 있는 크리스탈 리포트 프로젝트를 생성하여 리포트를 마든것 역시 기억하고 있을 것입니다. 이번 강좌에서는 만든 리포트를 이제 웹에서 보는 방법을 알아보도록 하겠습니다.
.NET 2.0의 CrystalReportViewer와 CrystalReportSource
기존의 닷넷 1.x버전에서부터 지원되어 왔던 CrystalReportViewer컨트롤을 살펴 보도록 하겠습니다. CrystalReportViewer는 보고서를 HTML 형식으로 변환해주고, 웹응용 프로그램에서 데이터의 상호 작용을 해주는 컨트롤입니다. 구조는 아래와 같습니다. 왼쪽 아래에는 LogonInfo(로그인관련)와 ParameterFieldInfo(파라메터 관련) 그리고 ReportSource(리포트소스)의 객체들이 연결되어져 있는데 이 객체들은 반드시 알아야 할 객체들입니다. 크리스탈리포트를 닷넷에서 어느정도 다루어 보았다면 아래그림이 아하! 하게 받아들여 지겠지만, 맨땅에 해당하시는 분에게는 아래 그림이 전혀 눈에 들어 오지 않을 것입니다. 그렇기 때문에 간단한 예제를 통해서 일단 리포트를 출력좀 해보고 다시 이 그림을 살펴보도록 하겠습니다.
<CrystalReportViewer의 구조>
ASP.NET2.0 에서의 리포트 출력
편리해진 ASP.NET 2.0에서 소스코드 없이 드래그와 몇번의 설정으로 바로 리포트를 출력해 낼 수가 있습니다. 너무 오바 하는거 아니냐구요?! 그럼 한번 해보겠습니다. 먼저 이번에 사용될 예제는 저번 강좌에서 만든 ASP.NET Crystal Reports프로젝트를 이용할 것입니다. 혹시 기억이 안날것 같아서 다시 복습해 보겠습니다. 필자는 아래와 같이 프로젝트를 생성했고, CrystalReport1.rpt라는 파일로 간단하게 보고서를 만들었습니다. 준비가 되지 않았다면 전 강좌에서 소스를 다운받아 오기 바랍니다.
<Crystal Report 프로젝트>
자 그럼 이제 Default.aspx라는 파일에서 전에 작성한 리포트파일을 만들어 보도록 하겠습니다. Default.aspx파일을 열었으면 왼쪽의 도구상자에 Crystal Reports 부분에 보면 다음과 같은 도구들이 있을 것입니다. 여기서 CrystalReportViewer와 CrystalReportSource컨트롤을 페이지 추가해 봅시다. 참고로 CrystalReportSource는 asp.net2.0에서 새로 추가된 컨트롤입니다.(Source 컨트롤들이 다수 추가될때 묻어 추가되었다는-_-ㅋ)

<도구상자안의 리포트 과련 컨트롤>
먼저 CrystalReportSource컨트롤의 속성을 설정해 보도록 하겠습니다. 이 컨트롤을 이용해서 리포트파일을 연결하는 이유는 데이터 파일을 연결하고, 또한 캐쉬기능을 이용할 수 있기 때문입니다. Report속성의 FileName속성에 우리가 연결시킬 CrystalReport 파일의 경로를 적어주기 바랍니다.
<CrystalReportSource의 속성설정>
그다음에는 CrystalReportViewer를 설정해 보도록 하겠습니다. 설정은 간단합니다. ReportSourceID의 아이디를 앞에서 만든 Source와 매칭해주면 되는것입니다.
<CrystalReportViewer의 속성설정>
속성을 위와 같이 설정해주고 나면 아래와 같이 미리 리포트의 모습이 드러나게 됩니다.
믿기지 않겠지만 일단 보고서를 보기 위한 준비는 끝이 났습니다.자 이제 브라우저에서 확인해 보도록 하겠습니다. 그럼 아래와 같이 DB 로그인을 요구하는 페이지가 출력 됩니다. “어!! 연결은 보고서를 만들때 해주지 않았었나?!“ 생각할 수 있습니다. 하지만 보고서에서의 DB연결은 단지 보고서를 디자인하기 위한 스키마를 얻기 위해서 입니다. 즉, 연결정보는 리포트가 가지고 있지 않고, 리포트를 사용하는 툴에서 설정을 해주어야 하는 것이죠. 뭐 일단 결과를 봐야 하기 때문에 암호를 쓰고 넘어가 보도록 하겠습니다. 
<Default.aspx의 실행화면>
<암호를 입력한 후의 실행화면>
암호를 넣고 넘어가게 되면 아래와 같이 리포트가 출력되는 것을 볼 수 있습니다. 소스코드를 전혀 손대지 않고 설정만으로도 이런 리포트를 출력할 수 있습니다. 자!! 그런데 저 위의 로그인 창은 어떻게 할 것인지.. 이 강좌 맨 처음에 설명한 그림을 살펴보면 답을 찾을 수 있습니다. 바로 TableLogonInfo 클래스를 이용해서 이 로그인 정보를 소스코드로 작성할 수 있는것입니다. 그럼 한번 코드를 작성해 보겠습니다.
|
protected void Page_Load(object sender, EventArgs e) { //TableLogOnInfo객체생성 CrystalDecisions.Shared.TableLogOnInfo cryLogonInfo = new CrystalDecisions.Shared.TableLogOnInfo(); //계정정보설정 cryLogonInfo.ConnectionInfo.ServerName = "HOONS"; cryLogonInfo.ConnectionInfo.Password = "123"; cryLogonInfo.ConnectionInfo.UserID = "sa"; cryLogonInfo.ConnectionInfo.DatabaseName = "pubs"; //계정추가 CrystalReportViewer1.LogOnInfo.Add(cryLogonInfo); //로그인창 false 설정 CrystalReportViewer1.EnableDatabaseLogonPrompt = false; } |
자 이 코드를 작성해 주면 이제 로그인정보를 입력하지 않아도 바로 아래와 같은 리포트를 실행 할 수 있습니다.
<Default.aspx의 실행화면>
이번 강좌에서는..
이번 강좌에서는 ASP.NET2.0에서 크리스탈 리포트 데이터를 바인딩하는 부분을 다루어 보았습니다. 다음 단원에서는 Windows Form에서 리포트를 바인딩해서 보여지는 부분을 간단히 다루어 보도록 하겠습니다. 웹폼과는 크게 다르지는 않기 때문에 쉽게 다룰 수 있을 것입니다. 기초부터 차근차근 써 나갈 예정이므로 이 글이 너무 쉽다고 생각하시는 분은 조금씩 참고 기달려 주시기 바랍니다. 그럼 다음시간에 뵙겠습니다~


::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::