Tech

Crystal Report

onesixx 2009. 3. 4. 10:56
반응형

크리스탈 리포트에서 리포트 생성 후 vb에서 이를 사용해서 출력할 수 있는 부분까지 진행합니다.
완벽한 소스는 정리 되는데로 첨부하도록 하겠습니다.

<< 환경 >>

1. 크리스탈 리포트 버젼 10
2. vb 6.0
3. DB : Access ( 처음 개발은 oracle로 했는데요... 편의상 access로 바꾸어서 올립니다.)

 

여기에서 다룰 예제는 마법사를 사용하지 않고 사용자가 폼의 모든 부분을 만들어가는 "빈 보고서 사용" 기능을 사용하겠습니다(실제 업무에서 이를 많이 사용하기 때문이기도 하구요) DB연동은 access를 사용하구요 sql query를 직접 작성해서 리포트를 작성하겠습니다.

직접 sql을 작성하는 방법이라 sql을 모르면 진행하기가 어렵겠지만 크리스탈 리포트를 사용하는 사용자가 sql을 모른다고 생각을 하지는 않기 때문에 기냥 진행하겠습니다.
리포트는 단순하지만 하나의 리포트로 끝나는 것이 아니구요 t_user의 특정 user_id 매개변수를 받아서 기본정보를 조회하구요
t_user_log의 사용자 로그 정보를 기본정보 하단에 리스트를 출력하는 리포트를 만들기로하겠습니다.

 

<시작>

자 크리스탈 리포트를 실행하시면 아래와 같은 화면이 나옵니다. "빈 보고서 사용" 선택하시구요

그롬 아래와 같은 화면으로 전환 합니다. db와 연동되는 리포트를 만들어야 하는데요. 여기서 db연결에 대한 환경을 셋팅하게 됩니다. 우리는 access db를 사용할 것이므로 "새 연결 만들기" 에서 "Access/Excel(DAO)"를 선택합니다.

데이터 유형은 Access선택하시구요 데이터베이스 이름은 생성한 Access파일을 선택하세요, 그리구 마침 하면 됩니다.
DB 테이블 스키마는 아래족에 있으니깐보시고 함 Access에서 만들어 보시구요... 자료도 입력하시면 됩니다.

다음에서는 크리스탈 리포트에 대한 메뉴와 기능에 대한 설명이 이어집니다. 그롬 짠 다음에 ~~~~

<< Access DB Schema >>

1. User 테이블 : 사용자 정보 테이블
       < PK : user_id >
       - user_id : 사용자 ID
       - user_name : 사용자 이름
       - user_pw    : 사용자 패스워드

2. User Log 테이블 : 사용자 이력 정보 테이블
        <PK> : user_id + log_date + log_time      (이미지 정보가 잘못 되었네요 ㅋ~~~)
       - user_id : 사용자 ID
       - log_date : 로그 일자(YYYYMMDD)
       - log_time : 로그시간(HHMISS)
       - log_desc  : 로그 설명

<<크리스탈 리포트에 대한 메뉴와 기능에 대한 설명>>
아래 화면이 DB 연결까지 끝나고 나면 나타나는 화면(디자인 모드)이 됩니다.

상세한 설명은 진행을 하면서 하구여 여기서는 개략적인 설명만을 하겠네요.

<< Standard 툴바 >>   크리스탈 리포트의 기본적인 기능들을 사용할 수 있는 툴바
<< Insert 툴바 >>       크리스탈 리포트에서 사용하는 여러가지 개체를 리포트에 삽입하는데 사용.
<< Formatting 툴바 >>   글자와 숫자의 서식을 꾸밀 수 있는 버튼들로 구성.
<< Experts 툴바 >>   Insert툴바와 비슷한 기능을 제공하지만 조금더 복잡한 기능을 제공한다.
<< 섹션 >>   종이나 화면으로 출력되는 피포트의 특정 영역을 의미한다.

   (1) Report Header (보고서 머리글)

리포트의 첫 페이지의 맨 위에 단 한번 나타난다.

         리포트의 표지와 비슷하다라고 생각하면 될듯..

   (2) Page Headder (페이지 머리글)

모든 페이지의 맨위에 위치하며 쳣 페이지의 경우에만 Report Header 아래에 나타난다.

         그리드나 표의 제목 정도로 생각하면 되겠죠.

   (3) Detail (본문)

          DB에서 레코드를 가져올 때마다 한번씩 나타난다.          그리드나 표의 실제 내용을 표시하는 영역입니다.

   (4) Report Footer (보고서 바닥글)

          리포트 맨 마지막 페이지에 단 한번 나타 납니다.

   (5) Page Footer (페이지 바닥글)

          모든 페이지의 제일 아래에 나타난다.  페이지 번호, 리포트 이름이나 회사이름등을 문서 아래쪽에 표시할대 사용하면 됩니다.

<< 리포트 메인 영역 >>

   리포트의 디자인 요소를 배치하고 꾸미는 등의 작업을 하며, 리포트의 결과 화면을 미리 조회 하는 역할도 한다.

<< 필드 탐색기 >>

 

자 이제 부터 본격적으로 Access에 있는 자료를 불러서 리포트배치하기 전단계를 해 볼까요~~
기본 모양은 상단에 사용자 ID, 사용자 이름을 한번 출력하구요.
이후 부터는 사용자의 로그를 일자별, 시간별로 출력하는 양식입니다.

사용자 기본정보는 한번만 출력이되구. 로그 정보는 일자별/시간별로 반복되어 출력이 되는 상이한 형태의 자료가 한 리포트에나와야 하므로 기본적인 양식으로 사용자 기본정보과 로그정보를 다루는 리포트를 하나씩만들구요
기본정보 리포트에 로그정보 리스트를 "하위 보고서 삽입" 형태로 만들게 됩니다.

1. 크리스탈 리포트 생성시 "빈 보고서 사용"를 선택합니다.    그리고 데이터 소스 연결을 기존 생성한 Access파일을 선택하면 됩니다.  그리구 "마침" 버턴을 살짝 눌러주세요.

2. 데이터 소스연결이 끝나면 "새 연결 만들기에" 새로운 소스가 연결된 부분이 나오구요.    마우스 오른쪽 클릭하면 팝업 메뉴에서 "즐겨찾기에 추가"를 선택합니다. 그냥 사용해도 되지만   자주 사용하는 연결이라면 이렇게 환경을 잡아놓으면 좋겠죠.

3. 전에 한번 언급한 적있지요... 여기서는 sql로서 처리를 한다구요.

   위의 그림에서 테이블을 선택해서 작업하는것도 가능하지만 여기서는 "명령추가"를 선택해서   sql문 작성으로 이를 대신합니다.

   그롬 "즐겨찾기" -> 연결된 데이타 -> "명령추가"를 선택하시구요 중간에 보면 ">" 표시 이죠   이걸 눌러주세요.

   sql을 입력할 수 있는 창이 열립니다.   좌측에 sql문을 입력하시구요 우측은 sql의 where문에서 사용할 변수를 생성하시면 됩니다.   함 볼까요...

    매개변수는 "만들기" 버턴 클릭하구요. "매개변수 이름"란에 "사용자ID"입력하시구 확인 하시면

   됩니다. 그리구 "매개 변수 목록"에서 만들어진 "사용자ID"를 더블클릭하면 sql을 만들어 놓은

   부분으로 Copy가 됩니다.

    확인을 누르면 매개변수를 입력하라는 창이 나타나는데요. 무시하구 "확인"을 누르세요.

   뭐 넣고 싶다면 넣어도 상관 없어요.

     "선택한 테이블"란에 생성된 객체가 생성되구요 "확인 하세요.

     크리스탈 리포토의 "필드 탐색기" 의 "데이터베이스 필드" -> "명령" 을 열어보면 sql문으로 작

     성한 컬럼이 나타 나게 될겁니다.

그롬 리포트 메인 부분에 사용자 기본정보를 배치하고 화면으로 확인을 해 보겠습니다.

필드 탐색기 에서 리포트에 출력할 자료를 본문에 넣기 위해서는 해당 컬럼을 드래&드롭 하시던지

아님 더블클릭하시고 마우스로 본문의 배치하고자 하는 곳에 클릭하시면 됩니다.

사용자 기본정보를 본문 영역에 배치합니다.

두번째로 사용자 로그 정보를 보여주기 위해서 sub 리포트를 작성해서 넣어 주어야 하는데요

어디에다 넣어야 할까요??????

본문영역에서 마우스 오른쪽 클릭해보시죠

그러면 PopUp 메뉴가 나타나구요 "아래쪽에 섹션 삽입" 을 선택합니다.

아래 그림과 같이요

그러면 본문영역에 하나가 추가 됩니다.

추가된 본문영역에 사용자 LOG 서브 리포트를 삽입하면 되겠죠

그런데 이상한게 하나 있는데 찾으셨나요....

답은 "필드 탐색기"에 있습니다. 한번 찾아보세요. 5초 여유를 드리죠..

5

4

3

2

1

답은 "필드 탐색기"에 있는 "매개 변수 필드"입니다.

sql생성할대 매개 변수를 생성했는데요 이 것이 "매개 변수 필드"에 자동 생성됩니다.

sql로 생성하지 않고 테이블로 사용할 경우 사용자가 "매개 변수 필드"란에서 따로 생성해야 하는

데요 sql로 바로 생성할 경우 sql 생성시 생성한 매개변수가 그대로 사용이 됩니다.

정확히 출력이 되는지 화면으로 확인을 해볼까요

저는 Access DB의 t_user테이블에 "fly"라는 사용자를 등록해 놓았습니다.

매개변수에 "fly"를 입력해서 조회 되는지 살펴 보겠습니다.

위의 그림 보면 섹션 상단에 "디자인" "미리보기"라는 탭이 보이시죠....

지금은 디자인 모드이구요 화면으로 확인하기 위해서 "미리보기" 탭을 선택하겠습니다.

근데 매개 변수가 없어 자료를 볼 수 가 없죠.

기존에 입력한 값이 있다면 계속 그 매개변수를 활용할 수 있지만 그렇지 않거나 다른 매개변수

를 넘겨서 보고 싶을때는 Standard Tool Bar에서 번개모양의 아이콘이 있어요

이를 클릭하면 새로운 매개변수를 사용할지 기존 매개변수를 이용할지 선택창이 나타납니다.

여기서 새로운 매개변수 선택하구 매개변수 입력란에 "fly"를 입력하고 확인하면 해당 자료가

조회된 하면이 나타나겠죠 아래와 같이....

이번에는 메인 리포트에 들어갈 서브 리포트를 작성하고

작성된 서브 리포트를 메일 리포트에 삽입 및 결과를 확인해 보겠습니다.

그리구 허접하지만 리포트답게 조금 바꾸어 보겠네요...

그리스탈 리포트 => 메뉴 => 파일 => 새로만들기 => 빈보고서 사용

해서 새로운 리포트를 생성합니다.

서브리포트의 경우에도 메인 리포트와 같이 sql문으로 생성하고 이를 화면에

배치 하도록 하겠습니다.

편집화면에 컨트롤을 아래와 같이 배치 합니다.

확인 하셨으면 저장 하세요(전 flyCrUserLogInfo 라는 이름으로 저장했습니다.)

시간 있으시면 사용자 Log테이블에 자료를 몇건 입력해 놓으시면 "미리보기"로 확인이 가능하겠죠.

자~~~~~~~~~~~~~~~~

메일 리포트에 방금 작성한 리포트를 삽입해 볼까여

메인 리포트를 다시 OPEN 하세요....

그리구 툴박스 보시면 "하위 보고서 삽입"이라는 아이콘이 있는데요

이를 선택하세요(메뉴 => 삽입 => 하위보고서)

하위 보고서를 선택할 수 있는 화면이 OPEN되는데요

"기존 보고서 선택", "보고서 마법사를 사용하여 보고서를 만듭니다."의 두개 선택 사항이 있어요

우린 미리 만들어 놓은 보고서가 있으므로 "기존 보고서 선택"을 선택하세요.

그리고 파일이름에 방금 저장한 보고서 파일을 선택하면 됩니다.

그리고 사정없이 "확인"버턴 누르세요

해당 개체를 어디에 배치할지 결정하고 마우스로 클릭

우린 메인에서 "본문 b"영역에 배치합니다.

한가지 의문이 생기네요

메인 보고서와 방급 삽입한 서브 보고서를 어떻게 연결해서

원하고자 하는 정보를 볼수 있을까요??????

방법이 없으면 말이 되질 않겠죠...

하위 보고서에서 마우스 오른쪽 클릭해서 "하위 보고서 연결 변경..." 선택하세요

하위 보고서와 메인 보고서를 연결하는 선택화면이 나타나죠

여기서 "사용할 수 있는 필드" 영역에서 "보고서 필드" => "명령.user_id"를 선택하거나

"보고서 필드" => DB연결정보 => "명령" => "user_id" 를 선택합니다.

그리구 "연결할 필드" 쪽으로 넘겨주면 됩니다.

하단에 보면 "하위 보고서 매개 변수 필드 선택"이라는 부분이 있는데요 이부분에

하위 보고서의 "매개변수"를 선택해 주면 됩니다.

"확인" 클릭하시면 메인 보고서와 서브 보고서의 연결이 완료 됩니다.

미리보기 해서 확인을 함 해보죠

리포트가 너무 썰렁하네요...

모양세를 조금 갖추어 볼까요

디자인 감각이 많으면 많을수록 좋겠죠...

전 아래와 같이 만들어 봤네요..

<< 수정내역 >>

1. 메임 보고서

   (1) 머리글 섹션

        . 필드탐색기 -> 특수 필드 -> 인쇄날짜/인쇄시간

        . 라인

   (2) 페이지 바닥글

        . 필드탐색기 -> 특수 필드 -> N/M 페이지

3. 서브 보고서

   (1) 공통

        .라인으로 테이블생성

   (2) 타이틀

        . 상자로 타이틀 크기만큼 조정해서 -> 상자서식 -> 테두리 : 없음, 채우기 : 노랑

   (3) 조회내용 :

       . 일자 표시형식 조정

              필드 log_date 마우스 오른쪽 클릭 -> 필드서식 -> 일반 -> 표시문자열 우측의 "X-2"

             아이콘 클릭 후 수정. 수식이 적용되면 "x-2" 아이콘은 빨강색으로 변함

             formula = left({명령.log_date},4) & "." & mid({명령.log_date},5,2) & "." & _

                          right({명령.log_date},2)

       . 시간 표시형식 조정

              필드 log_time 마우스 오른쪽 클릭 -> 필드서식 -> 일반 -> 표시문자열 우측의 "X-2"

             아이콘 클릭 후 수정. 수식이 적용되면 "x-2" 아이콘은 빨강색으로 변함

              formula = left({명령.log_time},2) & ":" & mid({명령.log_time},3,2) & " " & _

                            right({명령.log_time},2)

<< 수정내역 >>

3. 서브 보고서

   (1) 공통

        .라인으로 테이블생성

=============================================================

.라인으로 테이블생성 이라고 하셨는데 그런메뉴는 없던데요...TT

혹시나 라인 하나하나씩 그리신 건가요?

일단 저도 하나씩 라인을 그렸는데

문제가  세로정렬이 안되네요...

어떻게 하신건지좀...부탁드립니다.

 

마지막으로 지금까지 만든 크리스탈 리포트를 가지고 VB에서

사용해 보도록 하겠습니다.

VB 여시구요

(1) 파일 => 새 프로젝트 => 표준 Exe

(2) 우측의 프로젝트 창에서 마우스 오른쪽 클릭 하시면 팝업메뉴 나타나구요

    여기서 "추가" => 선택하면 하단 팝업메뉴가 다시 나타납니다.

     크리스탈 리포트를 설치하셨다면 여기에 "Cristal Report 버전"이 있는데요 이를 선택하세요

(3) 응~~ 익숙한 화면이 나타나지 않나요...

     크리스탈 리포트 처음 시작할때 나타나는 리포트 생성 옵션 선택 화면이죠...

     이것만 보면 VB에서도 직접 리포트를 만들 수 있다는 이야기 겠죠....

     하지만 우린 미리 만든 리포트가 있지요

     "기존 보고서 사용"을 선택하고 우리가 작성한 리포트(메인 리포트)를 선택하세요.

    다음 옵션은 "OK"하고 넘어가세요...

    자 리포트가 VB에서 나타나지요

    VB가 기본적인 코드를 작성하고 리포트를 화면에 보여줍니다.

    여기서 수정도 가능하니깐... 필요하면 수정하시면 됩니다.

    소스를 한번 볼까요

         Option Explicit

         Dim Report As New CrystalReport1

         Private Sub Form_Load()
             Screen.MousePointer = vbHourglass
             CRViewer1.ReportSource = Report
             CRViewer1.ViewReport
             Screen.MousePointer = vbDefault
         End Sub

         Private Sub Form_Resize()
             CRViewer1.Top = 0
             CRViewer1.Left = 0
             CRViewer1.Height = ScaleHeight
             CRViewer1.Width = ScaleWidth
         End Sub

   뭐 특별히 설명할건 없는것 같네요....

   자 이제 남은건 무얼까요....

   VB 크리스탈 리포트를 사용할때 이상태로 사용을 하면 조회가 될까요?

   그리고 내가 필요한 사용자를 조회하고 싶을 경우 원하는 argument를 넘겨야 겠죠...

(4) 여기서 할건 FORM_LOAD 할때 DB연결과 argument를 넘겨주고 조회하는 것으로 하겠습니다.

     이것만 되면 응용은 충분이 가능하리라 생각이 되네요...

이크 소스가 에러가 나네요. 오라클에 연결할때는 에러가 나지 않았는데...

     함 더 해보구 올릴께요.. 죄송 ~~~

 

 

 

 

http://cafe.naver.com/flyvb.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=17

 

 

 

 

 

 

Crystal Reports 10

새로 만들기를 클릭합니다 빈 보고서 사용을 선택하고 확인

데이터베이스 전문가 대화 상자에서 새 연결 만들기

데이터베이스 선택 --> Table선택 --> Field선택하여 디자인에 끌어넣기

 

  • 데이터베이스 필드 삽입 및 이동
  • 제목 추가 및 서식 설정
  • 작업을 세부 조정할 수 있도록 미리 보기 탭에 보고서 표시
  • 선택 전문가를 사용하여 보고서에 필요한 데이터만 포함
  • 개체 이동
  • 데이터 그룹화 및 정렬
  • 그림 삽입
  • 보고서 인쇄

     

    1.크리스탈 리포트 만들기

    (1)개요

    Visual Studio 6.0에서는 포함되어 있지 않았다. 닷넷에 와서 포함되었다.(닷넷은 8.0을 기준으로 한다)

    [고객]

    -고객번호

    -고객명

    -전화번호

    -이메일

    -주소1

    -주소2

    -우편번호

    [제품]

    -제품번호

    -제품명

    -원가

    [판매]

    -판매번호

    -고객번호

    -판매일자

    -판매총금액

    -배송일자

    [판매상세]

    -판매번호

    -제품번호

    -수량

    -판매단가

    고객은 하나 이상의 구매를 할 수 있다

    고객은 한 번에 여러개의 제품을 구매할 수 있다.

    (2)기본적인 리포트파일 만들기

    -프로젝트생성 

    -항목추가

    -크리스탈리포트 열기

    -Crystal Report 갤러리 대화상자에서 빈 보고서 사용선택 후 확인

    -좌측의 데이터베이스필드메뉴 오른쪽 버튼 클릭 - 데이터베이스 추가/제거 선택

    -OLE DB 항목 선택 - Microsoft OLE DB Provider for SQL Server 선택 - 다음

    -데이터베이스 연결 (서버,사용자,암호 입력 ) , 데이터베이스항목에서 컴보박스를 롭다운 데이터베이스 선택  - 다음

    -레포트에 필요한 테이블선택 , 선택테이블 중 필요한 필드 선택

    -필드 탐색기의 데이터베이스 필드에서 리프트에 삽입할 필드들을 마우스로 끌어서 리포트 디자인의 원하는 위치에 놓자.

    -이것으로 리포트 만드는 작업은 끝났다.

    -폼으로 와서  작업을 하면 된다.

    고객리스트 버튼을 만들고 클릭시 리포트가 출력되도록 해보자.

  •     Private Sub btnCustom_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCustom.Click
            '1. 파일의 경로를 설정
    CrystalReportViewer1.ReportSource = "..\CrystalReport1.rpt"

            '2. CrystalReport1 : 프로젝트에 포함된 크리스탈 리포트 이름 지정
            'CrystalReportViewer1.ReportSource = New CrystalReport1()

            '3. ReportDocument를 사용하는 방법
            'Dim myReport As New CrystalDecisions.CrystalReports.Engine.ReportDocument()
            'myReport.Load("..\CrystalReport1.rpt")
            'CrystalReportViewer1.ReportSource = myReport
        End Sub

    2.그룹화,요약정보,수식

    (1)SQL명령을 사용해서 리포트 만들기

    -항목추가

    -크리스탈리포트 열기

    -Crystal Report 갤러리 대화상자에서 빈 보고서 사용선택 후 확인

    -좌측의 데이터베이스필드메뉴 오른쪽 버튼 클릭 - 데이터베이스 추가/제거 선택

    -OLE DB 항목 선택 - 명령추가에 SQL문자 입력-선택한 테이블에 명령이 새로 하나 만들어진다.

    ==>이렇게 하면 결과집합이 작기 때문에  전체연결하는 방법보다는 빠르다.

    (2)그룹화

    -sql문의 group by구문과 거의 비슷하다.

    (3)그룹요약정보

    -그룹 내의 레코드만을 대상으로 그룹별 합계나 평균, 개수,표준편차 등의 요약정보를 나타낼 수 있다.

    (4)누적합계필드

    -요약필드와 비슷하지만 ,요약필드가 그룹 내의 레코드를 대상으로 계산을 하는 반면 ,

    누적합계필드는 리포트전체의 레코드를 대상으로 계산한다.

    (5)수식필드 추가

    -크리스탈리포트에서 사용하는 일종의 프로그래밍 언어다.

    배송이 되지 않은 사항이 있는 경우 미배송으로 표시해보자.

    If (ISNULL ({명령.배송일자}) OR {명령.배송일자} = "") Then

    formula = "미배송"             'formula - 리턴값을 저장하기 위해서 사용한다.

    End If

    3.선택레코드,매개변수필드

    -원하는 레코드만을 출력하고자 한다.

    -Where절을 이용해서 사용할 수도 있지만 사용자로부터 직접값을 입력받아야하는 경우도 있다.

    3가지 방법이 존재한다.

    (1)매개변수 필드와 선택전문가사용

    매개변수 필드 - 매개변수 필드만들기

    이름 : 고객이름

    메시지내용:고객이름을 입력하세요.

    값형식 : 문자열

    오른쪽 팝업 - 보고서  -선택전문가

    명령.고객명에는 '시작 '

    {?고객명} 선택

    위와 같이 실행하면

    IsLike연산이다.

    (2)매개변수필드를 프로그램으로 처리

      Private Sub btnFind1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFind1.Click
            Dim params As New CrystalDecisions.Shared.ParameterFields()
            Dim param As New CrystalDecisions.Shared.ParameterField()
            Dim paramValue As New CrystalDecisions.Shared.ParameterDiscreteValue()

            '1. 매개변수 필드의 이름 설정
            param.ParameterFieldName = "고객명"
            '2. 매개 변수 필드에 값 지정
            paramValue.Value = Me.txtName.Text
            param.CurrentValues.Add(paramValue)
            '3. 매개변수 컬렉션에 매개 변수 추가
            params.Add(param)
            '4. 뷰어 컨트롤에 매개 변수 필드 컬렉션 추가
            CrystalReportViewer1.ParameterFieldInfo = params
            CrystalReportViewer1.ReportSource = "..\CrystalReport2.rpt"
        End Sub

    (3)RecordSelectionFormula속성

        Private Sub btnFind2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFind2.Click
            Dim selectFormula As String
        '1. 적당한 수식 만들기
            If txtFrom.Text <> "" And txtTo.Text <> "" Then
                selectFormula = "{명령.판매일자} >= '" & txtFrom.Text.Trim & "' And" & _
                                "{명령.판매일자} <= '" & txtTo.Text.Trim & "'"
            ElseIf txtFrom.Text <> "" And txtTo.Text = "" Then
                selectFormula = "{명령.판매일자} >= '" & txtFrom.Text.Trim & "'"
            End If

      '2.1. ReportDocument의 RecordSelectionFormula 속성 사용(첫번째 방법)
       Dim myReport As New CrystalDecisions.CrystalReports.Engine.ReportDocument()
    myReport.Load("..\CrystalReport2.rpt")
            myReport.RecordSelectionFormula = selectFormula
            CrystalReportViewer1.ReportSource = myReport

      '2.2. 뷰어의 SelectionFormula 속성 사용(두번째방법)
          'CrystalReportViewer1.ReportSource = "..\CrystalReport2.rpt"
            'CrystalReportViewer1.SelectionFormula = selectFormula
    'CrystalReportViewer1.RefreshReport()
        End Sub

    4.크로스탭

    -스프레드시트와 비슷하게 요약데이터를 보고서에 행/열 구조로 표시하는데 사용된다.

    행과 열 두가지 기준을 이용하여 서로의 상관관계를 표 형태로 보여주므로 읽기 쉬우며 특히 빠르게 비교하여

    경향을 파악하는데 유용하다.

    -항목추가

    -크리스탈리포트 열기

    -Crystal Report 갤러리 대화상자에서 빈 보고서 사용선택 후 확인

    -좌측의 데이터베이스필드메뉴 오른쪽 버튼 클릭 - 데이터베이스 추가/제거 선택

    -OLE DB 항목 선택 - Microsoft OLE DB Provider for SQL Server 선택 - 다음

    -데이터베이스 연결 (서버,사용자,암호 입력 ) , 데이터베이스항목에서 컴보박스를 롭다운 데이터베이스 선택  - 다음

    -레포트에 필요한 테이블선택 , 선택테이블 중 필요한 필드 선택

    -보고서 머리글 세션에서 오른쪽 팝업메뉴 -삽입 - 크로스탭 -크로스탭서식 대화상자가 나온다.

    -특정 필드 선택 - 새수식 선택

    formula = left({판매.판매일자},4) & "년"   '즉 년도만 출력한다

    크로스탭 사이즈 변경 - 특정필드 선택후 시프트키+방향키

    [출처] [비주얼베이직 - VB.Net열혈강의-정리노트]크리스탈 리포트|작성자 붉은바다

     

     

     

    소개
    Crystal Reports 9 버전은 성능과 유연성이 입증된 8.5 버전을 기반으로 더욱 강력한 보고서 디자인, 전달 및 통합을 위해 다양한 첨단 기능을 제공합니다. 이 문서에서는 Crystal Reports 9 버전의 새로운 기능 및 향상된 기능을 다음과 같은 5가지 범주로 구분하여 간략하게 설명합니다.
    1. 강력한 기능
    2. 생산성
    3. 융통성
    4. 최종 사용자 상호 작용
    5. 일반 기능 향상

    강력한 기능
    Crystal Reports 9에는 복잡한 보고서 작성 요구 사항을 해결하고 기존 보고서를 최대한 활용할 수 있는 몇 가지 유용한 기능이 새로 추가되었습니다.

    부분 보고서
    부분 보고서를 사용하면 혁신적이고 빠른 개발 방법으로 무선 장치 또는 포털 응용 프로그램을 통해 주요 컨텐트를 개별 사용자에게 전달할 수 있습니다. 페이지 뷰에서만 볼 수 있었던 보고서 정보를 부분 보고서를 통하여 다른 곳에서도 확인할 수 있게 되었습니다. 차트, 요약 테이블, 키 값 등과 같이 기존 보고서의 특정 부분을 식별하여 포털 또는 무선 응용 프로그램에 통합할 수 있습니다. 이제는 웹이나 포털 환경에 사용할 보고서를 별도로 다시 만들 필요가 없습니다.
    최종 사용자는 아래에 설명된 탐색 기능과 부분 보고서를 함께 사용하여 하나 이상의 보고서에서 가장 중요한 정보만 검색하고 볼 수 있습니다.

    SQL 명령
    Crystal Reports 9에는 확장 SQL 명령이 디자이너에 포함되어 있으므로 SQL 컨트롤을 제한 없이 사용할 수 있습니다. 또한 데이터베이스 연결을 지정하고 매개 변수를 사용하는 SQL 명령을 만들어 데이터베이스에서 지원하는 모든 읽기 기능을 사용할 수 있습니다. 예를 들면, 이번 버전에서는 union 및 sub-select가 지원됩니다. 또한 SQL 명령에 매개 변수를 추가한 다음 Crystal Repository(아래 설명 참조)에 저장하여 여러 보고서에서 다시 사용하거나 공유할 수도 있습니다.

    유니코드 지원
    Crystal Reports 9에는 유니코드 문자열이 완벽하게 지원되므로 이제 Crystal Reports에서 모든 언어의 유니코드 데이터를 표시할 수 있을 뿐만 아니라 단일 보고서에 여러 언어를 사용할 수도 있습니다.

    생산성
    Crystal Reports 9에는 보고서를 만들거나 통합할 때 생산성을 향상시키고 리소스 사용을 줄일 수 있도록 몇 가지 기능이 개선되거나 새로 추가되었습니다.

    Crystal Repository
    Crystal Repository를 사용하면 사용자 지정 함수, SQL 명령, 텍스트 개체, 비트맵 같은 보고서 개체가 중앙 라이브러리에 저장되므로 관리, 공유 및 업데이트 작업을 한 곳에서 처리할 수 있습니다. 리포지토리 개체는 여러 보고서에 사용될 수 있습니다. 업데이트 작업은 개체의 한 인스턴스를 업데이트하면 해당 개체가 사용되는 모든 보고서에 자동으로 업데이트가 적용되는 단일 지점 프로세스입니다. 이러한 생산성 향상 기능의 도입으로 대량의 보고서를 만들고 유지하는 데 필요한 시간과 노력이 현저하게 줄어들 뿐만 아니라 보고서의 일관성과 품질을 높일 수 있습니다.

    사용자 지정 함수
    Crystal Reports 9에서는 수식 언어를 기반으로 하는 사용자 지정 함수를 통해 비즈니스 논리를 다시 사용할 수 있습니다. 사용자 지정 함수는 Crystal 또는 Microsoft Visual Basic 구문으로 작성되며 Crystal Repository와 함께 사용할 경우 여러 보고서에서 다시 사용, 공유, 사용자 지정이 가능하므로 일반 수식보다 유용합니다.

    사용자 지정 템플릿
    Crystal Reports 9에서는 사용자 지정 템플릿을 만들 수 있습니다. 표준 서식 및 논리가 포함된 사용자 지정 템플릿을 사용하면 모든 보고서에 일관된 모양과 느낌을 손쉽게 적용할 수 있습니다.

    수식 워크샵
    수식 워크샵은 Crystal Reports 수식 전문가에서 향상된 기능이며 수식과 사용자 지정 함수를 중앙의 한 위치에서 개발하고 유지 관리할 수 있습니다. 또한 수식 워크샵에는 코드를 사용하지 않는 새 마법사, 향상된 오류 추적 기능, 자동 완성 기능 등이 포함되어 있으므로 수식 및 사용자 지정 함수를 좀 더 쉽게 만들 수 있습니다.

    융통성
    Crystal Reports 9에는 Java, .NET, COM 등 모든 주요 엔터프라이즈 응용 프로그램 개발 플랫폼에 보고서를 통합할 수 있는 다양한 개발자 구성 요소가 제공됩니다. 각 환경에 대해 별도의 개체 모델이 제공되지만 개발자는 여러 플랫폼 간에 코드를 다시 사용하여 모든 응용 프로그램에 신속하고 완벽하게 보고서를 통합할 수 있습니다.

    Java SDK
    Crystal Reports 9에서는 개발자가 독립 실행형 Java 응용 프로그램 또는 J2EE 환경에서 보고서를 만들고 전달하는 데 사용할 수 있는 강력한 통합 솔루션인 Java SDK를 제공합니다. 서버 기반 Java 보고서 뷰어는 모바일 클라이언트를 지원할 수 있도록 보고서를 HTML 또는 WML로 렌더링합니다.

    Microsoft Visual Studio .NET SDK 업데이트
    Crystal Reports 9에는 Crystal Reports for Visual Studio .NET을 사용하는 개발자를 위해 보고서 디자인 및 통합 기능이 현저하게 향상되었습니다. Crystal Reports 9 버전으로 업그레이드하면 독립 실행형 정품 디자이너, 새 보고서 뷰어, 다양한 데이터 액세스, 추가 내보내기 옵션 등의 기능을 활용할 수 있습니다.

    COM SDK 기능 향상
    이전 버전에서와 마찬가지로 Crystal Reports 9에는 보고서를 신속하게 응용 프로그램에 통합하는 데 사용되는 개방형 COM 기반 구성 요소가 제공됩니다. Crystal Reports 9 버전은 Crystal Enterprise Report Application Server와 함께 사용되어 최종 사용자에게 더욱 다양한 기능과 독립성을 제공합니다.

    최종 사용자 상호 작용
    이전 버전과 마찬가지로 Crystal Reports 9에는 바로 사용할 수 있는 다양한 최종 사용자 상호 작용, 분석 및 사용자 지정 기능을 위한 혁신적인 솔루션이 제공됩니다. Crystal Reports 9 버전은 Crystal Enterprise Report Application Server와 함께 사용되어 최종 사용자에게 더욱 다양한 기능과 독립성을 제공합니다.

    대화형 Zero-Client 뷰어
    Crystal Reports 9에는 최종 사용자와 보고서 간의 상호 작용을 향상시키기 위해 zero-client 뷰어 기능이 새로 추가되었습니다. 여기에는 키 데이터 검색을 위한 고급 스마트 검색 기능 및 검색 결과 모눈을 Microsoft Word, Microsoft Excel, HTML 등 전자 메일에 붙여넣기 가능한 형식으로 내보낼 수 있는 향상된 기능이 포함됩니다. 결과 모눈을 받은 사람은 다시 보고서에 연결하여 관련 데이터를 자동으로 탐색할 수 있습니다.

    탐색
    탐색 기능을 사용하면 여러 보고서 개체를 탐색할 수 있습니다. 탐색 링크 안에 데이터 컨텍스트가 전달되므로 사용자는 특정 보고서 개체에서 같은 보고서나 다른 보고서에 있는 다른 개체를 탐색할 수 있습니다. 이러한 탐색 기능은 Crystal Reports 디자이너에서 코드 없이 만들거나 ASP 또는 JSP 페이지에서 코드로 사용자 지정할 수 있습니다.
    최종 사용자는 개체를 전체 보고서 페이지 또는 부분 보고서로 볼 수 있습니다. 부분 보고서와 탐색 기능을 함께 사용하면 무선 장치 및 포털로 정보를 전달하는 과정을 간소화할 수 있습니다.
    Microsoft Office 스마트 태그 지원
    Crystal Reports 9에서는 Office XP의 Microsoft 스마트 태그를 지원합니다. 이를 통해 최종 사용자는 차트와 테이블 같은 주요 보고서 개체를 Microsoft Outlook, Word 또는 Excel 문서에 삽입하여 해당 문서 내에서 개체를 직접 보거나 새로 고칠 수* 있습니다.
    *페이지 뷰어를 통해서만 Microsoft Outlook 문서의 스마트 태그를 새로 고칠 수 있습니다.

    일반 기능 향상
    Crystal Reports 9에는 사용의 편리를 위해 향상된 기능이 몇 가지 있습니다. 주요 내용은 다음과 같습니다.

    동시 설치
    이전 버전의 Crystal Reports가 설치되어 있는 컴퓨터에 Crystal Reports 9 버전을 설치하여 사용할 수 있음
    데이터베이스 쿼리 엔진 – 성능 및 속도가 향상되었습니다. 자세한 내용은 다음과 같습니다.
    Oracle 8 및 SQL 기반 DAO용 데이터베이스 드라이버 추가
    단일 보고서에 여러 데이터베이스 지원
    클라이언트 쪽 연결 기능 향상

    내보내기
    벡터 기반 이미지를 지원하는 Excel 내보내기 기능을 추가하여 출력 품질 향상
    CSS 스타일시트를 지원하는 HTML 내보내기 기능 추가
    다른 문서에서 사용할 수 있도록 검색 결과를 데이터 모눈 형식으로 대화형 뷰어에서 Word, Excel 또는 HTML로 내보내기. 이러한 결과 모눈에서 부모 보고서에 직접 연결할 수 있습니다.

    크로스탭/OLAP 모눈
    누적 합계 필드 요약
    요약 내용을 가로 또는 세로로 표시하도록 선택
    편집 가능한 요약 레이블 추가

    요약 백분율
    섹션 내에서 기준 위치 지정 가능

    차트
    갠트 및 게이지 차트 유형 추가
    날짜-시간 및 숫자 X축 지원, 현재 위치에서 서식 설정, 향상된 조건부 서식 설정 등 서식 기능 향상

    수식 향상
    런타임에 수식 오류 정보를 표시하는 수식 디버깅 기능
    수식 문자열 길이 제한을 64,000자로 확장
    새 데이터 형식에 액세스할 수 있도록 유니코드 문자열 지원
    향상된 오류 추적 및 자동 완성 기능을 제공하는 수식 워크샵 추가

    메모 필드 지원
    탐색기 및 마법사
    복잡한 보고서를 개체별로 검토하고 편집할 수 있는 보고서 탐색기 추가
    보고서에 사용할 수 있는 리포지토리 개체가 표시되는 리포지토리 탐색기
    화면 공간을 적절하게 활용할 수 있도록 모든 탐색기 도킹 가능
    빠르고 손쉽게 디자인할 수 있도록 디자인 마법사 및 전문가 내에 통합 데이터 탐색기 제공
    디자인 프로세스를 간소화하기 위해 보고서 디자인 마법사 재구성

     

     

     

     

    참조>

    http://www.businessobjects.com

  • 반응형

    'Tech' 카테고리의 다른 글

    통화를 표시할때 천원 단위로 표기  (0) 2009.05.15
    Windows LIVE OneCare  (0) 2009.03.15
    UltraEdit - 찾기에서 정규식사용  (0) 2009.03.14
    눈금자  (0) 2009.03.04
    Google Desktop  (0) 2009.02.23
    Diskeeper 2009  (0) 2009.02.18