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
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