[CrystalReports] Crystal Reports(크리스탈리포트) 2008 웹 배포 방법

View Comments




* 근 3주간 크리스탈 리포트 2008버전의 웹 배포 방법을 몰라 삽질을 해댄 후 방법을 알아내서 공유합니다.
혹시나 크리스탈 리포트 2008버전의 웹 배포에 어려움을 겪으시는 분들에게 참고가 되었으면 합니다.

1. 우선 작업하기 전에 [ASP.Net2.0] Crystal Repors(크리스탈리포트) 인쇄 버튼 클릭시 인쇄 설정 팝업창 나오게 설정하기 글에 참고 웹사이트에 있는 내용을 참고바란다.
    - 크리스탈 리포트 작업시 크리스탈 리포트를 위한 웹사이트를 기준 웹사이트와 별개로 따로 생성을 해야함.

2. 크리스탈 리포트 웹사이트 프로젝트가  열려있는 상태에서 <그림1>과 같이 파일 메뉴에서 추가를 선택하여
    새 프로젝트를 선택하여 <그림2>에 보이는 템플릿 중에 웹 설치 프로젝트를 선택하여 생성한다.

첨부 그림 보기


3. 추가된 프로젝트에 기본 컨텐츠 및 병합모듈을 추가한다. 기본 컨텐츠 (크리스탈 리포트 프로젝트 소스 컨텐츠)는 이미 등록이 되어있다.
크리스탈 리포트 2008 배포 시 필요한 병합모듈은 “C:\Program Files\Common Files\Merge Modules” 위치 시켜야 한다.
- Crystal Reports 2008용 Merge Modules(병합모듈)
  
- 추가적인 Merge Modules(병합모듈) : 다운로드

첨부 그림 보기


<그림3>에서 생성한 WebSetup 프로젝트에서 마우스 오른쪽 버튼 클릭 후 추가를 눌러 병합모듈을
<그림4>에서 보는 것처럼 다운받은 병합모듈을 필요한 파일만 선택하여 프로젝트에 추가한다.

4. 추가한 병합 모듈 중 <그림5>에서 보는 것처럼 CRRuntime_12_0.msm 파일의 속성을 선택하여 <그림6>과 같
이 Keycode 부분에 크리스탈 리포트의 라이센스키를 입력해준다.
(참고 : 정식 라이센스키가 있다면 정식키를 입력해주고 Trial버전을 설치하였다면 Trial키를 넣어준다.)

첨부 그림 보기


5. 컨텐츠 및 병합모듈의 추가가 끝났다면 웹 설치 프로젝트를 빌드 한다.
빌드 후 프로젝트 폴더에 Debug 폴더에 가면 WebSetup.msi 파일이 생성되어 있을 것이다.
(Release 모드로 빌드를 했다면 Release 폴더에 생성)

6. 생성된 WebSetup 파일을 실행하여 설치를 진행을 한다.
설치시 경로는 크리스탈 리포트를 호출하여 사용하는 웹사이트의 경로에 설치를 하고 설치 가상 디렉토리는
크리스탈 리포트 프로젝트 생성할 때 만든 이름으로 생성하여야 한다.(<그림7> 참고)
설치시 <그림8>에서 보는 것처럼 DLL 등록실패 에러가 뜨는데 크리스탈 리포트가 설치가 안된 서버에서
DLL을 등록하기 위한 부분인데 이미 크리스탈 리포트가 설치되어 있는 상태에서 실행을 하였기 때문에
뜨는 에러이기 때문에 여기서는 그냥 계속을 눌러서 설치 완료를 한다.

첨부 그림 보기


7. 설치가 완료된 후 해당 폴더에 보면 기존 웹사이트 폴더에 설치한 CR 폴더가 위치해 있는 걸 볼 수 있다.
(<그림9> 참고)
이 상태에서 실행시 자바스크립트 에러가 발생하는 경우가 있는데 이때에 CR 폴더와 동일한 레벨 위치에
IIS 사이트 루트(interpub\wwwroot\) 폴더 아래에 위치한 aspnet_client 폴더를 복사해와서 두면 된다.(<그림10> 참고)

첨부 그림 보기


이상으로 Crystal Reports 2008(크리스탈 리포트 2008)의 웹 배포 방법에 대한 설명을 마친다.

※ 설명이 제대로 되었는지는 모르겠습니다. 3주간 삽질하다가 아래 직원이랑 같이 찾아본 결과 겨우 배포방법을 찾아서 이번에 진행하는 프로젝트에 적용을 하면서 정리를 한다고 했는데 이게 다른 프로젝트에도 제대로 배포가 될지는 모르겠네요. 일단 현재 진행중인 프로젝트에서는 잘 실행이 되는군용~^^;
크리스탈 리포트 2008 Trial 버전으로 작업을 하였는데 프로젝트를 제안한 곳에서 정식CD를 구매를 하긴 했는데 크리스탈 리포트 원제작사가 SAP이란 회사에 합병되면서 CD 발송이 늦어지고 있다고 하네요.
주문은 7월말에 했는데 아직 도착을 안하고 있다는 ㅡㅡ^
정식CD에 배포와 관련한 메뉴얼이 있을지는 모르겠지만 만약에 있다면 욕나올 듯 합니다 ㅡㅡ;
어찌됐든 배포 성공해서 프로젝트 종료가 가능했네요. 후~



* 이 포스트는 blogkorea [블코채널 : 프로그램에 대한 개발팁 및 유용한 정보 공유합시다.] 에 링크 되어있습니다.

17 Comments (+add yours?)

트랙백1 Tracbacks (+view to the desc.)

[CrystalReports] Crystal Reports(크리스탈리포트) 인쇄 버튼 클릭시 인쇄 설정 팝업창 나오게 설정하기

View Comments

※ 첨부파일 :



* Crystal Repors(크리스탈리포트) 인쇄 버튼 클릭시 인쇄 설정 팝업창 나오게 설정하기

1. 크리스탈 리포트 발행 후 인쇄 버튼을 클릭하면 초기 기본값은 PDF파일로 미리보기 실행

2. 인쇄 설정창이 나오게 하기 위해선 첨부파일에 있는 파일이 필요

3. CrystalReportViewer를 정의한 aspx 파일에 다음과 같이 OBJECT 태그로 첨부파일의 CAB파일 지정

    <object id="CrystalPrintControl" classid="CLSID:BAEE131D-290A-4541-A50A-8936F159563A"
codebase="http://localhost:1485/CR/CAB/PrintControl.cab" height="0px" version="10,2,0,1078"
viewastext="" width="0px">
</object>

※ 크리스탈 리포트를 실행하기 위해서는 별도의 Crystal Report용 웹사이트가 필요로 함.

- 참고 웹페이지 : http://www.hoons.kr/Lecture/LectureView.aspx?BoardIdx=199&kind=27
                        http://www.hoons.kr/Lecture/LectureView.aspx?BoardIdx=200&kind=27



댓글0 Comments (+add yours?)

트랙백1 Tracbacks (+view to the desc.)

[CrystalReports] Crystal Reports(크리스탈리포트) 런타임시 실행

View Comments

* Crystal Repors(크리스탈리포트) 런타임시 실행

특정 버튼 클릭으로 크리스탈 리포트를 보여주기 위해서 aspx.cs단에서 해줘야할 것들.

1. 크리스탈 리포트 바인딩을 수행하는 함수 작성

   private void ConfigCrystalReport()
   {
        // Crystal Report 접속용 로그인 정보
        TableLogOnInfo cryLogonInfo = new TableLogOnInfo();
        cryLogonInfo.ConnectionInfo.ServerName = "SERVER명";
        cryLogonInfo.ConnectionInfo.UserID = "DB접속 아이디";
        cryLogonInfo.ConnectionInfo.Password = "DB접속 비밀번호";
        cryLogonInfo.ConnectionInfo.DatabaseName = "사용할 데이터베이스명";
        CRV_BOM.LogOnInfo.Add(cryLogonInfo);
        CRV_BOM.EnableDatabaseLogonPrompt = false;  // 크리스탈 리포트 실행시 로그인 정보 입력폼 안나오게
      
        // Report 문서 경로 설정
        rptdoc.ReportDocument rpt = new rptdoc.ReportDocument();
        rpt.Load(Server.MapPath("리포트 파일 경로명"), OpenReportMethod.OpenReportByDefault);

        // 파라메터 전송을 위한 개체 정의
        rptdoc.ParameterFieldDefinition pfd;
        ParameterValues pvals;
        ParameterDiscreteValue pdv;

        // 파라메터 설정 - 파라메터 설정은 리포트에서 필요로 하는 파라메터만큼 만들어준다.
        pfd = rpt.DataDefinition.ParameterFields["@iType"];
        pvals = new ParameterValues();
        pdv = new ParameterDiscreteValue();
        pdv.Value = "S1";
        pvals.Add(pdv);
        pfd.ApplyCurrentValues(pvals);

        CrystalReportViewer1.ReportSource = rpt;
        CrystalReportViewer1.DataBind();
   }

2. 1번에서 작성한 함수를 Page_Init에서 로드
   
    protected void Page_Init(object sender, EventArgs e)
    {
        ConfigCrystalReport();
    }
   


댓글0 Comments (+add yours?)

트랙백0 Tracbacks (+view to the desc.)

Newer Entries Older Entries