반응형
C#에서 크리스탈 리포트를 이용한 인쇄
- 크리스탈 리포트 라이브러리 설치(편집용, 런타임용)
- 프로젝트에 크리스탈 리포트 참조 추가
- DataSet생성(DataSet안의 DataTable 하나당 리포트 파일과 대응)
- 리포트 생성
- 인쇄하기
크리스탈 리포트 라이브러리 설치(편집용, 런타임용)
- SAP 사이트에서 Visual Studio IDE용 설치파일과 런타임(32, 64) 다운로드 후 설치
- IDE용 : CRforVS13SP29_xxx.EXE, 런타임용 : CRRuntime_(32/64)bit_xxx.msi
- 계정이 없으면 간단한 가입 후 다운로드
프로젝트에 크리스탈 리포트 참조 추가
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();
}
}
}
프로젝트 소스 다운↓↓↓
반응형
'윈폼(Winform)' 카테고리의 다른 글
C# DataTable DataRow 데이터 가져오기 (1) | 2021.11.18 |
---|---|
C# DataBase(Mysql, Maria) 접속, Select/Execute Query (0) | 2021.11.18 |
C# Round Border Label (0) | 2021.11.17 |
C# 언어 지역화 하기(Multi-Language) (0) | 2021.11.17 |
C# 실행파일에 폰트 포함 (1) | 2021.11.14 |
최근댓글