Tác giả: Nguyễn Anh Tuyên
Cấp độ bài viết: Cơ bản
Tóm tắt: Tìm hiểu và thao tác với Crystal Report
Crystal Reports
Crystal Reports là một trong những phần mềm hàng đầu để tạo ra các report tương tác, nó được tích hợp rộng rãi vào ứng dụng Windows và Web. Với hơn 4 triệu licenses được bán, nó dẫn đầu trong các cách tạo ra Report cho Windows. Crystal Report đã được sử dụng trong VS từ 1993 nhưng với sự ra mắt của VS. Net 2002 thì phiên bản mới Crystal Reports .NET ra đời và được tích hợp vào VS. Net.
Từ VS.Net 2003 trở đi thì Crystal Report đã được tích hợp vào trong VS. Net (nó là 1 phần của VS) và là Crystal Report Net (tuy nhiên phần tích hợp có 1 số tính năng bị cắt giảm) nhưng không ảnh hưởng nhiều lắm đến những nhu cầu bình thường.





Bài viết này là thành quả mà mình thu lượm được từ quá trình học hỏi và đúc kết lại những gì là cần thiết nhất để sử dụng được Crytal Report.
I. Các khái niệm nền tảng về Crystal Report.
1. Report Section
Một Crystal Report thì bao gồm nhiều section khác nhau. Mỗi section là tập hợp các thuộc tính được thể hiện như các hành vi. Ví dụ: page header sẽ xuất hiện ở trên đầu của mỗi trang.

Để xem thuộc tính của một section ta chọn Report--> Section Expert. Bạn có thể chọn Suppress nếu ko muốn một section nào đó xuất hiện.

2. Các section chuẩn
Report Header : Xuất hiện trên cùng của trang đầu tiên của report và thường được bị ẩn đi. Nó có thể được dùng để chỉ ra điểm bắt đầu của 1 report mới hay dùng để bao bọc.
Report Footer : Xuất hiện ở cuối của trang cuối cùng của report, mặc định được hiển thị, có thể dùng để tóm tắt cho report (Số record, ngày...)
Page Header : Xuất hiện trên cùng của mỗi trang và dùng để hiển thị column header, tựa của report, và đếm số trang, giữa những item khác.
Page Footer : Xuất hiện ở cuối mỗi trang và dùng để hiển thị số trang, ngày in, thời gian ...
Group Header : Xuất hiện ở đầu mỗi nhóm và dùng để hiển thị tên nhóm.
Group Footer : Xuất hiện ở cuối của 1 nhóm record và dùng để hiển thị tên nhóm, subtotal và tóm tắt
Details Section : Có một cho mỗi record trong report của bạn. Chúng thường được dùng để hiển thị thông tin về column và có thể mở rộng để bao đóng một số section của field để tạo form.
3. Field Objects:
Chứa đựng đa số nội dung của report. Từ những field hiển thị reocord, đến text object mô tả mỗi column hay summary field cung cấp tổng số, bất kỳ report nào đều là một tập hợp của Field object

Có 8 kiểu khác nhau của field objects được add vào report.
4. Database Fields
Database field có thể được chèn vào từ bất kỳ bảng nào và nó sẽ xuất hiện trong report. Field này chính là nơi mà dữ liệu sẽ hiển thị
5. Text Objects
Được sử dụng để nhập text như column heading và comments.
Text objects are used in a report for typing text that will appear in that report, such as the column headings. Khi bạn đã nhập xong thì bạn click vào bất kỳ nơi nào bên ngoài để thoát khỏi edit mode.
6. Special Fields
Là những field được xác định trước với những chức năng xác định.
Print Date Ngày tháng mà report được in
Print Time Thời gian mà report được in
Modification Date : Ngày tháng mà report được sửa lần cuối
Modification Time : Thời gian mà report được sửa lần cuối
Data Date : Date mà data được đọc từ database
Data Time : Time mà data được đọc từ database
Record Number : Số record tuần tự được gán vào cho tất cả record trả về cho report
Page Number : Số trang
Group Number : Số tuần từ đuóc gán vào tất cả các nhóm
Total Page Count : Tổng số trang
Report Title : Tựa của Report, được save lại trong phần tóm tắt của file report
Report Comments : Comment được nhập vào thông tin summary
Record Selection Formula : Record Selection Formula được dùng cho report
Group Selection Formula : The group selection formula được dùng cho report
File Path and Name : của report file
File Author : Tác giả của report từ report file’s Summary Information
File Creation Date : The date the report file được tạo ra
Page N of M : N là trang hiện tại và M là tổng số trang.
7. Summary Fields
Summary fields thường được dùng với nhóm trong report.
Subtotal và summary fields thì tương tự nhau nhưng subtotal đặc trưng như là 1 phép cộng sum, ngược lại summary field có thể là sum, average hay độ lệch tiêu chuẩn
8. Formula Fields
Được bao bọc trong cặp ngoặc nhọn {} và đứng trước nó là ký tự @
{@SalesTax} + {@InvoiceTotal}
Formula fields được tạo ra bằng cách sử dụng Formula editor tích hợp.

9. Parameter Fields
Được sử dụng để cho user nhập thông tin vào khi report run. Parameter có thể được sử dụng theo 1 số cách khác nhau, từ dạng đơn giản (như nhập tên của một user để hiển thị lên report ) đến chọn lựa record (lọc nội dung).
Parameter field được thiết kế với 1 cặp ngoặc nhọn {} và đứng trược tên nó là ?
If {?EnterCountry} = “USA” then “North America”
Có 7 kiểu khác nhau : Boolean, Currency, Date, Date Time, Number, String, Time.

10. SQL Expression Fields
Để làm hầu hết mọi công việc trên Database server của bạn, ta dùng SQL Expression Fields thay vì Crystal Formulas. Việc sử dụng SQL Expression sẽ đảm bảo tính toán sẽ được thực hiện trên Server database của nó, và cho bạn truy cập các function của SQL.
To create a SQL Expression, right-click SQL Expression Fields in Field Explorer, select New, enter a
name, and select OK.
11. Unbound Fields
Sử dụng field này , bạn sẽ tạo ra được một report chung và có thể lập trình thiét lập nội dung của nó lúc runtime.
Có 7 kiểu khác nhau : Boolean, Currency, Date, Date Time, Number, String, Time.