본문 바로가기
컴퓨터 활용(한글, 오피스 등)/50_1. 운영체제_윈도우

C# Crystal Report 예제(편집, 인쇄)

by 3604 2024. 3. 29.
728x90

 

C#에서 크리스탈 리포트를 이용한 인쇄

  • 크리스탈 리포트 라이브러리 설치(편집용, 런타임용)
  • 프로젝트에 크리스탈 리포트 참조 추가
  • DataSet생성(DataSet안의 DataTable 하나당 리포트 파일과 대응)
  • 리포트 생성
  • 인쇄하기

 

크리스탈 리포트 라이브러리 설치(편집용, 런타임용)

  • SAP 사이트에서 Visual Studio IDE용 설치파일과 런타임(32, 64) 다운로드 후 설치
  • IDE용 : CRforVS13SP29_xxx.EXE, 런타임용 : CRRuntime_(32/64)bit_xxx.msi
  • 계정이 없으면 간단한 가입 후 다운로드
https://www.sap.com/cmp/td/sap-crystal-reports-visual-studio-trial.html

 

프로젝트에 크리스탈 리포트 참조 추가

 

DataSet생성

  • 리포트 당 대응되는 데이터 테이블 생성

 

리포트 생성 및 DataTable연결, 편집

  • 추가 > 새항목 > Crystal Reports
  • DataTable연결 : 필드 탐색기 > 데이터베이스 필드 > 우클릭 > 데이터베이스 전문가
  • 편집 화면의 우클릭 메뉴에서 고정항목(날짜, 시간 등), 텍스트, 선 등 삽입
  • 선택한 DataTable의 항목 선택하여 삽입
  • 본문 항목은 DataTable의 Row개수만큼 반복해서 출력이 되는 영역임

 

인쇄 Form

 
using CrystalDecisions.CrystalReports.Engine;
 
using System.Windows.Forms;
 
 
 
namespace CrystalReportTest {
 
public partial class FormPrint :Form {
 
public FormPrint() {
 
InitializeComponent();
 
}
 
 
 
public void setReportSource(ReportClass report) {
 
crystalReportViewer1.ReportSource = report;
 
}
 
}
 
}

 

메인 Form

 
using CrystalReportTest.Print;
 
using System;
 
using System.Data;
 
using System.Windows.Forms;
 
 
 
namespace CrystalReportTest {
 
public partial class FormMain :Form {
 
public FormMain() {
 
InitializeComponent();
 
}
 
 
 
//리스트 형식 인쇄
 
private void btnPrintList_Click(object sender, EventArgs e) {
 
CrystalReportTestList report = new CrystalReportTestList();
 
 
 
//이름 상관없이 순서데로임
 
DataTable table = new DataSetMain.DataTableTestListReortDataTable();
 
for(int i = 0; i < 10; i++) {
 
DataRow row = table.NewRow();
 
 
 
row["col1"] = "col1data" + (i + 1);
 
row["col2"] = "col2data" + (i + 1);
 
row["col3"] = "col3data" + (i + 1);
 
row["col4"] = "col4data" + (i + 1);
 
row["col5"] = "col5data" + (i + 1);
 
 
 
table.Rows.Add(row);
 
}
 
 
 
report.SetDataSource(table);
 
 
 
FormPrint form = new FormPrint();
 
form.setReportSource(report);
 
form.ShowDialog();
 
form.Dispose();
 
}
 
 
 
//페이지 형식 인쇄
 
private void btnPrintPage_Click(object sender, EventArgs e) {
 
CrystalReportTestPage report = new CrystalReportTestPage();
 
 
 
//이름 상관없이 순서데로임
 
DataTable table = new DataSetMain.DataTableTestPageReortDataTable();
 
 
 
DataRow row = table.NewRow();
 
 
 
row["col1"] = "col1data";
 
row["col2"] = "col2data";
 
row["col3"] = "col3data";
 
row["col4"] = "col4data";
 
row["col5"] = "col5data";
 
row["col6"] = "col6data";
 
row["col7"] = "col7data";
 
row["col8"] = "col8data";
 
row["col9"] = "col9data";
 
 
 
table.Rows.Add(row);
 
 
 
report.SetDataSource(table);
 
 
 
FormPrint form = new FormPrint();
 
form.setReportSource(report);
 
form.ShowDialog();
 
form.Dispose();
 
}
 
}
 
}

 

프로젝트 소스 다운↓

728x90
반응형