LẬP TRÌNH WINDOWS

Chương 7: THIẾT KẾ BÁO CÁO-CRYSTAL REPORT

 Giảng Viên: ThS. Dương Thành Phết

 Email: phetcm@gmail.com – YahooID: phetcm

 Website: http://www.thayphet.net

1

 Tel: 0918158670

http://www.thayphet.net

NỘI DUNG

1. Giới thiệu CrystalReport

2. Report Design Environment

3. Crystal Reports Object Model

4. Kết xuất báo cáo

5. Export và Print

2

http://www.thayphet.net

1. GIỚI THIỆU CRYSTAL REPORTS

 Crystal Report là gì ?

 Đặc điểm của Crystal Report:

Là công cụ thiết kế báo cáo cho phép tạo báo cáo bằng cách tìm và định dạng dữ liệu từ một nguồn dữ liệu hay từ những nguồn dữ liệu khác nhau.

 Không cần mở một ứng dụng riêng rẽ

 Truy cập dữ liệu nguồn dễ dàng

 Truy cập được nhiều nguồn dữ liệu khác nhau

3

 Chia sẻ sử dụng các bảng báo cáo

http://www.thayphet.net

2. REPORT DESIGN ENVIRONMENT

4

2.1. Các thành phần của Report Designer

http://www.thayphet.net

2. REPORT DESIGN ENVIRONMENT

Xuất hiện trên trang đầu tiên / trang cuối cùng của bảng báo cáo

Xuất hiện trên đầu / cuối mỗi trang

Xuất hiện vào đầu / cuối một nhóm mẫu tin

Xuất hiện các mẫu tin

5

2.2 Các section của một báo cáo

http://www.thayphet.net

2. REPORT DESIGN ENVIRONMENT

6

2.2. Các section của một báo cáo

http://www.thayphet.net

2. REPORT DESIGN ENVIRONMENT

2.3. Các đối tượng trong Field Explorer

vào báo cáo.

 Database Fields: Chứa tất cả các field mà bạn đưa

 Formula Fields: Dùng để đưa các tính toán phức tạp

 Parameter Fields: Dùng để nhắc nhở người dùng nhập vào các thông tin cần thiết đối với báo cáo đang chạy .

vào báo cáo

trị các mẫu tin của một field khác.

7

 Running Total Fields: Dùng để tính toán dựa trên giá

http://www.thayphet.net

2. REPORT DESIGN ENVIRONMENT

2.3. Các đối tượng trong Field Explorer

 Group Name Fields: Thể hiện các nhóm đang được

sử dụng trong báo cáo.

bạn được thực hiện trên sever

 Special Fields: Thể hiện các vùng mục tin đặc biệt

 SQL Experssion Field: Đảm bảo việc tính toán của

 Unbound Fields: Dùng tạo bản báo cáo generic rồi dùng lập trình cho đặt để nội dung các vùng mục tin này vào lúc chạy.

như PrintDate, PrintTime, PageNumber…

8

Minh họa

http://www.thayphet.net

3. CRYSTAL REPORTS OBJECT MODEL

3.1 Giới thiệu

Tiến trình thiết kế bản báo cáo: - Liên kết data source - Sắp đặt và định dạng các Report Object trên Report Designer

Static Report

Với Crystal Reports.NET, bạn có toàn quyền truy xuất và thay đổi phần lớn các thuộc tính của bản báo cáo.

Dynamic Report

9

Thay đổi bằng cách nào? ReportDocument và CrystalReportViewer

http://www.thayphet.net

3. CRYSTAL REPORTS OBJECT MODEL

3.2 ReportDocument

ReportDocument là lớp cơ sở đối với tất cả các báo cáo

Sơ đồ lớp

Database: Cung cấp những thuộc tính cho phép truy xuất thông tin liên quan đến cơ sở dữ liệu trong bản báo cáo

10

DataDefinition: Chứa tất cả các thông tin liên quan đến dữ liệu được xử lý dựa trên dữ liệu nguồn của báo cáo

http://www.thayphet.net

3. CRYSTAL REPORTS OBJECT MODEL

3.2 ReportDocument

Sơ đồ lớp

ReportDefinition: Cho phép truy xuất thông tin của các collection Areas, Sections và ReportObjects

11

ReportOptions: ho phép bạn truy cập thông tin liên quan đến các tùy chọn báo cáo trong một báo cáo

http://www.thayphet.net

3. CRYSTAL REPORTS OBJECT MODEL

3.2 ReportDocument

Sơ đồ lớp

PrintOptions: Cung cấp những thuộc tính và phương thức để thiết lập các tùy chọn liên quan đến in ấn

ExportOptions: Cung cấp những thuộc tính dùng để thiết lập các tùy chọn cho việc export một báo cáo

12

SummaryInfo: Cho phép bạn truy cập thông tóm tắt hoặc tổng kết trong một báo cáo

http://www.thayphet.net

3. CRYSTAL REPORTS OBJECT MODEL

3.3 CrystalReportViewer

CrystalReportViewer control dùng để Preview Report

Sơ đồ lớp

LogonInfo: Cung cấp các thuộc tính cho việc truy lại và thiết lập các tùy chọn kết nối.

ParameterFieldInfo: Cho phép bạn truy xuất và thay đổi thông tin của các tham số trong bản báo cáo

13

ReportSource: Dùng để thiết lập báo cáo nguồn cho viewer

Demo

http://www.thayphet.net

4. KẾT XUẤT BÁO CÁO

 Khi tạo một báo cáo Crystal Report, trình Report Designer sẽ yêu cầu người dùng chọn dữ liệu nguồn.

14

 Report Designer sẽ tự động lưu lại các định nghĩa (bao gồm đường dẫn nếu là file access và sever, database name nếu là SQL server ...)

http://www.thayphet.net

4. KẾT XUẤT BÁO CÁO

Khi có yêu cầu xem báo cáo, Crystal Report sẽ tự động lấy tham số đã được lưu sẵn truy cập đến bảng dữ liệu nguồn và thực hiện kết xuất báo cáo ra màn hình, máy in hay tập tin..

Thông tin truy cập dữ liệu nguồn

15

Vì vậy, khi có nhu cầu triển khai ứng dụng với CrystalReport, ta phải Gán lại lại các tham số để CrystalReport có thể truy cập đến dữ liệu nguồn

http://www.thayphet.net

4. KẾT XUẤT BÁO CÁO

Đối tượng Database của ReportDocument

16

Thuộc tính Database là tập hợp các bảng dữ liệu(Tables) dùng trong báo cáo và mối gắn kết (TableLinks).

http://www.thayphet.net

4. KẾT XUẤT BÁO CÁO

Mỗi bảng dữ liệu đều có những thuộc tính dùng để đặt để thông tin có ý nghĩa đối với việc kết nối với bảng dữ liệu.

17

Đối tượng TableLogonInfo

http://www.thayphet.net

4. KẾT XUẤT BÁO CÁO

18

Class Diagram

http://www.thayphet.net

4. KẾT XUẤT BÁO CÁO

Mô tả thuộc tính đối tượng ConnectionInfo

Stt Tên thuộc tính Mô tả

1 DatabaseName

2 3 Password ServerName

19

4 UserId Tên database của dữ liệu nguồn. Đối với MS Access là đường dẫn đến file .mdb Mật khẩu đăng nhập vào dữ liệu nguồn Tên Server chứa dữ liệu nguồn. Đối với MS Access là đường dẫn đến file .mdb Tên đăng nhập người dùng

http://www.thayphet.net

4. KẾT XUẤT BÁO CÁO

Sử dụng ReportDocument:

20

Đoạn code mô tả thay đổi thông tin kết nối của myReport. Nội dung thay đổi gồm: DatabaseName, Password, ServerName, UserId.

http://www.thayphet.net

4. KẾT XUẤT BÁO CÁO

 Việc đặt

thông

tin kết nối sử dụng viewer control

(CrystalReportViewer) cũng như đối tượng ReportDocument.

Nhưng viewer control không có hiểu các bảng dữ liệu trong

một báo cáo.

 Collection TableLogOnInfo là đối tượng collection của

viewer control. Chúng ta sẽ tạo ra một đối tượng Table mới

cho mỗi bảng dữ liệu và cho đặt các thông tin kết nội của đối

tượng ConnectionInfo. Sau đó, dùng hàm Add() để thêm

bảng dữ liệu vào collection TableLogOnInfos.

21

Sử dụng CrystalReportViewer

http://www.thayphet.net

4. KẾT XUẤT BÁO CÁO

22

Demo

http://www.thayphet.net

5. EXPORT VÀ PRINT

Nhu cầu báo cáo là hiển thị thông tin dưới dạng văn bảng hoàn chỉnh. Vì vậy, ngoài nhu cầu xem trên màn hình (Preview) thì còn có nhu cầu in báo cáo ra máy in, word, excel để làm tài liệu lưu trữ.

 Xuất báo cáo thông qua Viewer

23

 Xuất báo cáo thông qua lập trình

http://www.thayphet.net

5. EXPORT VÀ PRINT

 Ra máy in

24

5.1. Xuất báo cáo thông qua Viewer

http://www.thayphet.net

5. EXPORT VÀ PRINT

Các kiểu file mà CrystalReport hổ trợ kiết xuất

25

 Ra tập tin

http://www.thayphet.net

5. EXPORT VÀ PRINT

5.2. Xuất báo cáo thông qua lập trình

 Ra máy in

Lớp ReportDocument cung cấp hàm PrintToPrinter dùng để in báo cáo từ máy in mặc định. Có 4 tham số: Số bản in, collation flag (boolean), trang bắt đầu, trang kết thúc.

26

http://www.thayphet.net

5. EXPORT VÀ PRINT

Stt Thuộc tính

Mô tả

PageContentHeight

Int32. Trả về chiều cao nội dung các trang tính theo twips

1

PageContentWidth

Int32. Trả về chiều rộng nộ dung các trang tính theo twips

2

3

PageMargins

trả về hoặc đặt

PageMargins. topMargin,bottomMargin, leftMargin, rightMargin. Sử dụng hàm ApplyPageMargins để thực hiện các thay đổi này.

4

PaperOrientation

PaperOrientation. Trả về hoặc đặt chiều hướng giấy in trên máy in hiện hành. Các mục chọn là DefaultPaperOrientation, Landscape hoặc Portrait.

5

PaperSize

PaperSize. Trả về hay đặt khổ giấy in trên máy in hiện hành.Bao gồm: PaperA4, PaperLegal,PaperLetter...

6

PaperSource

PaperSource. Trả về hay đặt nguồn cung cấp giấy in trên máy in hiện hành. Hổ trợ 13 khay giấy khác nhau gồm Auto(chọn tự động), Lower, Midder, Upper ...

7

PrinterDuplex

PrinterDuplex. Trả về hay đặt mục chọn duplex trên máy in hiện hành. Bao gồm các mục Default, Horizontal, Vertical,...

8

PrinterName

String. Trả về hay đặt tên máy in mà báo cáo dùng đến. Sẽ trả về chuỗi rỗng nếu máy in mặc nhiên được dùng.

27

http://www.thayphet.net

5. EXPORT VÀ PRINT

 Ra tập tin

xuất. Trong đó

Lớp ReportDocument cung cấp hàm ExportToDisk. Dùng để kết xuất ra tập tin và ghi lên đĩa. Có 2 tham số là ExportFormatType và đường dẫn tên tập tin cần kết các hằng enumeration ExportFormatType:

Stt

Dạng thức

File mở rộng

Enumeration Constant

Adobe Acrobat

.PDF

PortableDocFormat

1

Rich Text Format

.RTF

RichText

2

HTML 3.2

.HTM/.HTML

HTML32

3

HTML 4.0

.HTM/.HTML

HTML40

4

Microsoft Word

.DOC

WordForWindows

5

Microsoft Excel

.XLS

Excel

6

28

http://www.thayphet.net

5. EXPORT VÀ PRINT

29

Ví dụ:

30