개발팁2016. 8. 31. 10:00

기존에 ASP.NET 에서 크리스탈레포트 출력기능을 만들어 보셨다면,
CrystalReportViewer 라는 서버컨트롤을 통해서 출력 화면을 만들었지만,
ASP.NET MVC 에서는 PDF 파일을 통해 출력하게 된다.

 

우선, Visual Studio 크리스탈레포트 개발환경을 만들어야 한다.
Crystal Reports for Visual Studio .NET 2010 또는 2012 를 검색해서 다운받아 설치한다.
이를 설치해야, Visual Studio 에서 API 와 Report Designer 를 사용할 수 있다.

 

ASP.NET MVC 프로젝트를 새로 만들고,

 

참조에 아래 4개를 추가한다.

 

CrystalDecisions.CrystalReports.Engine
CrystalDecisions.ReportSource
CrystalDecisions.Shared
CrystalDecisions.Web

 


솔루션 탐색기에서, 상위에 Reports 라는 폴더를 만든다.

 

 

 

Reports 를 선택하고, 마우스 오른쪽을 눌러, 추가 -> 새항목을 클릭한다.

 

 

Reporting 항목을 선택하고, Crystal Reports 를 선택하여, 생성할 rpt 파일 이름을 적어주고, 추가 버튼을 누른다.


 

 

 

새 Crystal Report 문서 만들기 창이 뜨면,
보고서 마법사를 사용할수도 있지만, 일단 빈 보고서 사용을 선택하면,
Report Designer 가 나온다.

 

 

 

머리글, 본문, 바닥글을 적당히 작성해보자.
아직까지는, DB 데이터 연결이나, 수식 등은 사용하지 않고, 그냥, 내용만 작성해보자.


 

 

이제, 생성된 레포트 파일을 Controller 에 연결할 차례다.

 

public ActionResult ShowReport()
{
     using (ReportClass rpt = new ReportClass())
     {
          rpt.FileName = Server.MapPath("~/") + "/Reports/Test1.rpt";
          rpt.Load();
          Stream stream = rpt.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);

          return File(stream, "application/pdf");
     }
}

 

ReportClass 를 이용하여,  rpt 파일을 Load 하여, PDF (Portable Doc Format) 로 변환하여,
리턴한다.
아직, DB연결은 들어가지 않았기 때문에, 소스파일은 아주 간단하다.

실제로, PDF 로 리턴하게 되면, 웹브라우저에서는 Acrobat Reader 를 통해, 화면에 출력이 되며, 인쇄가 가능하다.

ExportFormatType 에는 Excel 이나 Word, html 등 여러가지가 있으니, 변경하면서, 테스트 해보길 바란다.

 

인터넷익스플로러에서 보여지는 화면이다.

 

 

크롬에서 통해 보여지는 화면이다.

 

실제 인터넷익스플로러 에서는 Object 태그로 구성이 되고, 크롬에서는 Embed 태그를 통해 구성이 된다.

Posted by 헝개