huong dan thuc hanh crystal report sqlserver 4 1170 1126192982011905084910

19
Lương Trn Hy Hiến Email: [email protected] Crystal Report vs 2005 – SQL Server 1/19 HƯỚNG DN THC HÀNH CRYSTAL REPORT Trong VS2005, bn đã to 1 ng dng dng Windows Form mi vi tên là QuanLyNhanVien (để làm các phn khác). 1/ To CSDL cho ng dng: GisCSDL bao gm 2 bng NhanVien PhongBan vi cu trúc như sau: Hình 1: Bng Nhân Viên (NhanVien) Hình 2: Bng Phòng Ban (PhongBan) Gia 2 bng NhanVien PhongBan có liên kết thông qua khóa ngoi MaPB trong bng NhanVien Hình 3: Relationship

Upload: trongsangpy

Post on 23-Oct-2014

466 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Huong Dan Thuc Hanh Crystal Report SQLServer 4 1170 1126192982011905084910

Lương Trần Hy Hiến Email: [email protected]

Crystal Report vs 2005 – SQL Server 1/19

HƯỚNG DẪN THỰC HÀNH CRYSTAL REPORT

Trong VS2005, bạn đã tạo 1 ứng dụng dạng Windows Form mới với tên là QuanLyNhanVien (để làm các phần khác).

1/ Tạo CSDL cho ứng dụng: Giả sử CSDL bao gồm 2 bảng NhanVien và PhongBan với cấu trúc như

sau:

Hình 1: Bảng Nhân Viên (NhanVien)

Hình 2: Bảng Phòng Ban (PhongBan)

Giữa 2 bảng NhanVien và PhongBan có liên kết thông qua khóa ngoại MaPB trong bảng NhanVien

Hình 3: Relationship

Page 2: Huong Dan Thuc Hanh Crystal Report SQLServer 4 1170 1126192982011905084910

Lương Trần Hy Hiến Email: [email protected]

Crystal Report vs 2005 – SQL Server 2/19

2/ Thêm 1 report m ới vào ứng dụng: - Từ Solution Explorer, right-click, chọn Add New Item, thêm 1 Report

mới vào ứng dụng với tên là reportNhanVien

Hình 4: Màn hình thêm Item Crystal Report

Trong màn hình Crystal Report Gallery, chọn Blank Report:

Hình 5: Màn hình chọn loại Report

Page 3: Huong Dan Thuc Hanh Crystal Report SQLServer 4 1170 1126192982011905084910

Lương Trần Hy Hiến Email: [email protected]

Crystal Report vs 2005 – SQL Server 3/19

3/ Thiết kế report:

3.1/ Cấu trúc 1 report Một report bao gồm 5 phần chính: - Report header: phần thông tin đầu tiên của report. Một báo cáo report

thường sẽ gồm nhiều trang, report header chính là phần xuất hiện chỉ một lần ở trang đầu tiên của toàn report.

- Page header: phần hiển thị thông tin xuất hiện ở đầu mỗi trang của report. Ví dụ như một báo cáo dạng bảng có nhiều cột như: STT, Tên, Địa chỉ, SĐT… thì đầu mỗi trang cần lặp lại những tiêu đề cột để người đọc nhận biết dễ dàng ý nghĩa mỗi cột.

- Details: phần hiển thị thông tin chi tiết của report. Một report thường bao gồm nhiều mục với vai trò như nhau tương ứng với các record của database mà report sử dụng. Phần details sẽ liệt kê những record đó.

- Report footer: phần hiển thị thông tin xuất hiện chỉ một lần ở cuối report . Ví dụ thông tin như người lập báo cáo là ai, tại đâu, hôm nào sẽ được đặt ở report footer .

- Page footer: phần thông tin xuất hiện cuối mỗi trang . Ví dụ số trang được đặt ở page footer.

Hình 6: Cấu trúc Report 1 trang

Hình 7: Cấu trúc Report nhiều trang

Page 4: Huong Dan Thuc Hanh Crystal Report SQLServer 4 1170 1126192982011905084910

Lương Trần Hy Hiến Email: [email protected]

Crystal Report vs 2005 – SQL Server 4/19

2.2/ Kết nối report đến CSDL: Từ Field Explorer, chọn Database Fields, right-click, chọn Database

Expert:

Hình 8: Màn hình chọn Database Expert

Trong hộp thoại Data Expert, chọn node Create New Connection |

OLEDB | Make New Connection, right-click chọn Make New Connection.

Hình 9: Màn hình tạo mới 1 Connect

Page 5: Huong Dan Thuc Hanh Crystal Report SQLServer 4 1170 1126192982011905084910

Lương Trần Hy Hiến Email: [email protected]

Crystal Report vs 2005 – SQL Server 5/19

Chọn Microsoft OLEDB Provider for SQL Server

Hình 10: Màn hình chọn Provider cho SQL Server

Thiết lập kết nối đến CSDL QuanLyNhanVien:

Hình 11: Màn hình khai báo thông tin Connect

Chọn Next, Finish để trở về hộp thoại Data Expert. Trong hộp thoại Data Expert, danh sách bên tay phải sẽ là các thông tin sẽ được hiển thị lên report.

Page 6: Huong Dan Thuc Hanh Crystal Report SQLServer 4 1170 1126192982011905084910

Lương Trần Hy Hiến Email: [email protected]

Crystal Report vs 2005 – SQL Server 6/19

Hình 12: Chọn Table cho Report

Chẳng hạn, ta cần hiển thị thông tin bảng NhanVien lên report, click chọn

bảng NhanVien và click button để đưa bảng này sang danh sách bên tay phải, click OK.

Hình 13: Hướng dẫn chọn Table (dùng >)

Trên Field Explorer sẽ hiển thị danh sách các field trong table NhanVien.

Hình 14: Fields Explorer

Page 7: Huong Dan Thuc Hanh Crystal Report SQLServer 4 1170 1126192982011905084910

Lương Trần Hy Hiến Email: [email protected]

Crystal Report vs 2005 – SQL Server 7/19

Để thông tin ta đưa lên Field Explorer là kết quả của 1 câu truy vấn, ta trở lại hộp thoại Data Expert, bỏ node NhanVien ở danh sách bên tay phải

Chọn Add Command, click button

Hộp thoại Add Command To Report xuất hiện, nhập câu lệnh sql vào textBox bên tay trái:

Page 8: Huong Dan Thuc Hanh Crystal Report SQLServer 4 1170 1126192982011905084910

Lương Trần Hy Hiến Email: [email protected]

Crystal Report vs 2005 – SQL Server 8/19

Kết quả của quá trình dùng lệnh SQL để truy vấn lấy dữ liệu:

Hình 15: Màn hình kết quả chọn field từ Command

Trên Field Explorer, danh sách các thuộc tính có thể được hiển thị trên

report sẽ là kết quả của câu truy vấn trên:

Bạn có thể chọn và kéo rê vào report hoặc có thể thiết kế bằng Wizard.

Page 9: Huong Dan Thuc Hanh Crystal Report SQLServer 4 1170 1126192982011905084910

Lương Trần Hy Hiến Email: [email protected]

Crystal Report vs 2005 – SQL Server 9/19

Dùng Wizard:

Hình 16: Chọn field hiển thị trên Report

Hình 17: Chọn field gom nhóm

Page 10: Huong Dan Thuc Hanh Crystal Report SQLServer 4 1170 1126192982011905084910

Lương Trần Hy Hiến Email: [email protected]

Crystal Report vs 2005 – SQL Server 10/19

Hình 18: Chọn field gom nhóm

Hình 19: Chọn cột sắp xếp theo tên nhóm

Page 11: Huong Dan Thuc Hanh Crystal Report SQLServer 4 1170 1126192982011905084910

Lương Trần Hy Hiến Email: [email protected]

Crystal Report vs 2005 – SQL Server 11/19

Page 12: Huong Dan Thuc Hanh Crystal Report SQLServer 4 1170 1126192982011905084910

Lương Trần Hy Hiến Email: [email protected]

Crystal Report vs 2005 – SQL Server 12/19

Hình 20: Cọn kiểu Report

2.3/ Thiết kế các thành ph ần của report Sau khi lấy được thông tin từ CSDL, ta sẽ thiết kết report để hiển thị nội

dung của các thông tin này. a/ Thiết kế Report Header: Ở Report Header, giả sử ta sẽ hiển thị logo của công ty và 1 dòng văn

bản thể hiện nội dung report. - Thêm 1 hình ảnh vào report:

Tại Report Header, right-click, chọn Insert | Picture, xác định đường dẫn đến file hình ảnh sẽ được chèn lên report. Ảnh chèn vào có thể thay đổi vị trí, kích thước để phù hợp với kích thước của report.

Page 13: Huong Dan Thuc Hanh Crystal Report SQLServer 4 1170 1126192982011905084910

Lương Trần Hy Hiến Email: [email protected]

Crystal Report vs 2005 – SQL Server 13/19

- Thêm 1 đoạn văn bản vào report:

Right-click, chọn Insert | Text Object , nhập nội dung văn bản cần chèn. Để thay đổi định dạng hiển thị của đoạn văn bản này, click chọn đối

tượng, right-click, chọn Format Object. - Thêm 1 đường kẻ vào report

Right-click, chọn Insert | Line , kéo thả đường kẻ cần vẽ

b/ Thiết kế nội dung báo cáo ( Details ) Từ Field Explorer, drag drop các Database field cần hiển thị lên report vào

vùng Details trên report Khi drag drop một Database field vào vùng Details, 1 văn bản được tự

động thêm vào vùng Page Header với nội dung là tên cột của field dữ liệu này, để thay đổi tên cột, double click vào đối tượng object này hay right-click, chọn Edit Text Object.

Page 14: Huong Dan Thuc Hanh Crystal Report SQLServer 4 1170 1126192982011905084910

Lương Trần Hy Hiến Email: [email protected]

Crystal Report vs 2005 – SQL Server 14/19

Tiếp tục drag drop lên vùng Details các Database field thông tin khác mà

cần hiển thị lên report.

Sau khi thiết kế xong, click vào tab Main Report Review để xem kết quả.

Page 15: Huong Dan Thuc Hanh Crystal Report SQLServer 4 1170 1126192982011905084910

Lương Trần Hy Hiến Email: [email protected]

Crystal Report vs 2005 – SQL Server 15/19

c/ Hoàn thiện report:

- Chèn số thứ tự của từng record trong báo cáo: Trên vùng Details, right-click, chọn Insert | Special Fields | Record

Number

Page 16: Huong Dan Thuc Hanh Crystal Report SQLServer 4 1170 1126192982011905084910

Lương Trần Hy Hiến Email: [email protected]

Crystal Report vs 2005 – SQL Server 16/19

Page 17: Huong Dan Thuc Hanh Crystal Report SQLServer 4 1170 1126192982011905084910

Lương Trần Hy Hiến Email: [email protected]

Crystal Report vs 2005 – SQL Server 17/19

- Đánh số trang cho từng trang của report: Thông tin về số trang sẽ được hiển thị ở vùng Page Footer của report Trên vùng Page Footer, right-click, chọn Insert | Special Field | Page

Number

2.4/ Nạp report lên c ủa sổ ứng dụng: Từ tab Crystal Reports trên thanh toolBox, kéo thả 1 control Crystal

Report Viewer vào Form

Thiết lập thuộc tính ReportSource của Crystal Report Viewer

Chạy ứng dụng để xem kết quả.

2.5/ Gom nhóm vi ệc hiển th ị thông tin: Giả sử ta có nhu cầu cần gom nhóm danh sách nhân viên theo từng Phòng

ban để hiển thị theo dạng sau:

Page 18: Huong Dan Thuc Hanh Crystal Report SQLServer 4 1170 1126192982011905084910

Lương Trần Hy Hiến Email: [email protected]

Crystal Report vs 2005 – SQL Server 18/19

Phòng A STT Họ tên Ngày sinh Lương 1 ABC 1/1/1990 2000000 2 DEF 1/1/1988 2100000 Phòng B STT Họ tên Ngày sinh Lương 3 GHK 1/1/1990 2000000 4 MNO 1/1/1988 2100000 Trên Fields Explorer, tại node Group Name Fields, right-click chọn

Insert Group Trên hộp thoại Insert Group, chọn thuộc tính dùng để gom nhóm (trong

trường hợp này là gom nhóm theo tên phòng ban ).

Khi ta Insert một Group vào Report, Group Header và Group Footer sẽ

được thêm vào Thiết kế lại report với cấu trúc như sau:

Page 19: Huong Dan Thuc Hanh Crystal Report SQLServer 4 1170 1126192982011905084910

Lương Trần Hy Hiến Email: [email protected]

Crystal Report vs 2005 – SQL Server 19/19

Kết quả:

2.3/ Hiển th ị report t ừ nguồn dữ liệu lấy bằng lệnh SQL � Bước 1: Thiết kế report với nguồn dữ liệu thiết kế bằng tay (kết nối tạo

bằng Wizard – tức phải thực hiện kết nối). � Bước 2: Xây dựng form để hiển thị Report (trong đó có đối tượng

crystalReportViewer1) � Bước 3: Thực hiện kết nối file report đã thiết kế lên form hiển thị report

//Lấy dữ liệu SqlConnection con = new SqlConnection(“Server=.\\SQLEXPRESS; Database=QuanLyNhanVien; User Id = sa; Password = sa;”); con.Open(); SqlCommand cmd = new SqlCommand(“Chuỗi lệnh SQL”, con); SqlDataAdapter da = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); da.Fill(dt); con.Close(); ReportDocument rd = new ReportDocument(); rd.Load(ten_file_report); rd.SetDataSource(ds); crystalReportViewer1.ReportSource = rd; Khai báo thư viện cho ReportDocument: using CrystalDecisions.CrystalReports.Engine;

----o0o---