728x90
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(); |
|
} |
|
} |
|
} |
프로젝트 소스 다운↓↓↓
728x90
반응형
'컴퓨터 활용(한글, 오피스 등) > 50_1. 운영체제_윈도우' 카테고리의 다른 글
윈도우 사용자 계정 변경(MS 계정 ↔ 로컬 계정) 방법 (0) | 2024.11.11 |
---|---|
Microsoft Visual C++ Runtime Library AIO(All in One) 활용 방법_abbodi1406 재배포 Repack (0) | 2024.05.29 |
파이썬으로 여러 엑셀파일의 데이터 읽어 들이기/pandas[출처] 파이썬으로 여러 엑셀파일의 데이터 읽어 들이기/pandas|작성자 장삼 (0) | 2024.03.27 |
msg 로 메시지 보내기 (1) | 2024.03.26 |
rust install (0) | 2024.03.10 |