Tài liệu Bài giảng Thiết kế báo cáo bằng report: 1
Bài 6: THIẾT KẾ BÁO CÁO BẰNG REPORT
Report là công cụ dùng thiết kế in ấn dữ liệu hữu hiệu trong Access. Hầu như tất cả
những gì muốn in và in theo bố cục như thế nào? Report đều có thể đáp ứng!
Bài này sẽ trình bày từ những khái niệm căn bản về thiết kế in ấn, về Report của Access đến
tiếp cận những kỹ thuật in ấn phức tạp như: report có tham số, subreport,..
Nội dung cụ thể bao gồm:
Các khái niệm về Report;
Sử dụng report wizard;
Sử dụng report design view;
Kỹ thuật sub-report;
Tham số cho report.
I. Cấu trúc Report
Cấu trúc một report thông thường gồm 5 phần:
2
• Page Header
Là phần đầu tiên của một trang báo cáo. Giống như khái niệm Page header trong
Word và Excel. Phần này có thể có hoặc không có thông tin tuỳ vào người thiết kế.
• Page Footer
Là phần cuối cùng của mỗi trang báo cáo. Giống như khái niệm Page footer
trong Word và Excel. Phần này có thể có hoặc không có thông tin tuỳ vào người thiết
kế.
• Detail
Là phần thân ...
22 trang |
Chia sẻ: hunglv | Lượt xem: 2306 | Lượt tải: 1
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng Thiết kế báo cáo bằng report, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
1
Bài 6: THIẾT KẾ BÁO CÁO BẰNG REPORT
Report là công cụ dùng thiết kế in ấn dữ liệu hữu hiệu trong Access. Hầu như tất cả
những gì muốn in và in theo bố cục như thế nào? Report đều có thể đáp ứng!
Bài này sẽ trình bày từ những khái niệm căn bản về thiết kế in ấn, về Report của Access đến
tiếp cận những kỹ thuật in ấn phức tạp như: report có tham số, subreport,..
Nội dung cụ thể bao gồm:
Các khái niệm về Report;
Sử dụng report wizard;
Sử dụng report design view;
Kỹ thuật sub-report;
Tham số cho report.
I. Cấu trúc Report
Cấu trúc một report thông thường gồm 5 phần:
2
• Page Header
Là phần đầu tiên của một trang báo cáo. Giống như khái niệm Page header trong
Word và Excel. Phần này có thể có hoặc không có thông tin tuỳ vào người thiết kế.
• Page Footer
Là phần cuối cùng của mỗi trang báo cáo. Giống như khái niệm Page footer
trong Word và Excel. Phần này có thể có hoặc không có thông tin tuỳ vào người thiết
kế.
• Detail
Là phần thân của report – nơi hiển thị giá trị các bản ghi sẽ in ra. Phần này có
thể bị thay đổi, phụ thuộc vào nguồn dữ liệu tại thời điểm sẽ in ra của report.
Ví dụ: Danh sách học sinh lớp 10A1 là 45 khi đó Detail report sẽ in ra 45 dòng; nếu
chuyển sang in danh sách học sinh lớp 10A2 có 48 học sinh, lúc này Detail report sẽ
in ra 48 dòng (tương ứng với số bản ghi của nguồn dữ liệu sẽ in ra).
• Report Header
Là phần tiêu đề của trang đầu tiên Report, nằm tiếp theo phần Page header và
nằm trên phần Detail. Mỗi Report sẽ chỉ có nhiều nhất 1 Report header. Phần này có
thể có hoặc không có thông tin tuỳ vào người thiết kế.
• Report Footer
Là phần tiêu đề cuối của trang cuối cùng Report, nằm tiếp theo phần Detail và
phía trước phần Page Footer. Mỗi Report sẽ chỉ có nhiều nhất 1 Report footer. Phần này có
thể có hoặc không có thông tin tuỳ vào người thiết kế.
Môi trường làm việc
Làm việc với Report gần giống làm việc với Form. Sự khác nhau cơ bản của
Report và Form là: Form có thể hiển thị, tra cứu, cập nhật và điều khiển dữ liệu từ
CSDL; còn Report chỉ có thể lập báo cáo và in ra, đặc biệt Report không làm thay đổi
giá trị dữ liệu trong CSDL.
Thông thường mỗi report sẽ in dữ liệu của một Table hoặc một Query nào đó. Tức là phải có
một nguồn dữ liệu cần in cụ thể
II. SỬ DỤNG REPORT WIZARD
3
Ví dụ: Tạo bản in danh sách các sản phẩm trong table SanPham bao gồm các field :
MaSP, TenSP, DonViTinh, DonGia
Bước 1: Ở thẻ Reports bên khung trái cửa sổ Database , nhấn New, chọn Report
wizard, chọn nguồn dữ liệu trong khung trống bên dưới (vd: table SanPham), nhấn
OK.
Bước 2: Chọn dữ liệu cần in
Lưu ý: Sử dụng các nút lệnh >, >>, <, << để đưa các field cần in từ danh sách Available
Fields: (danh sách các trường có thể in) sang danh sách Seleted Fields (danh sách các
4
field sẽ được in ra report). Hãy lần lượt thực hiện chọn các field MaSP, TenSP, DonViTinh,
DonGia, nhấn Next
Bước 3: Chọn kiểu phân nhóm dữ liệu trên report
Ở bước này cho phép chọn các field làm các cấp phân nhóm. Nếu không cần phân nhóm thì
giữ nguyên và nhấn Next. Nếu muốn dùng field nào để phân nhóm thì chọn field đó trong
danh sách bên khung trái, field phân nhóm sẽ được đưa lên trên.
Bước 4: Thiết lập sắp xếp dữ liệu trên báo cáo
Report wizard cho phép tối đa 4 mức ưu tiên sắp xếp dữ liệu được đánh số từ 1 đến
4 (hộp thoại trên). Field nào thiết lập trước, sẽ được ưu tiên sắp xếp trước.
5
Trong trường hợp giá trị trường đó trùng nhau, Access sẽ chuyển đến các mức tiếp theo để
sắp xếp. Kiểu sắp xếp (theo chiều tăng hoặc giảm) có thể thiết lập khi nhấn nút Ascending
hoặc Descending bên cạnh. Thiết lập xong nhấn Next để tiếp tục
Bước 6: Chọn bố cục (Layout) cho Report
Có 2 thiết lập trong bước này:
- Chọn bố cục cho report ở hộp Layout. Có 3 kiểu Layout: Columnar, Tabular và
Justified- hãy chọn một kiểu phù hợp (xem hộp preview bên trái để biết trước kết
quả)
- Chọn hướng giấy in ở hộp Orientation. Có 2 kiểu hướng in là: Portrait – in theo
khổ giấy dọc và Landscape- in theo khổ giấy ngang
- Chọn xong nhấn Next để tiếp tục
Bước 7: Chọn mẫu định dạng (Style)
cho report
Hãy chọn một mẫu định dạng từ
danh sách bên trái hộp thoại. Chọn
xong nhấn Next để tiếp tục
Bước 8: Hoàn thiện các thông tin
cuối cùng
6
Bao gồm các thông tin sau:
- Gõ vào tiêu đề report cũng như tên report trên hộp What do you want for your report?
- Chọn Preview the report để hiển thị dữ liệu của report ngay sau khi kết thúc;
hoặc hiển thị ngay màn hình thiết kế để sửa cấu trúc report khi chọn Modify the
report’s design
- Cuối cùng nhấn Finish để kết thúc các công việc sử dụng report wizard.
Màn hình hiển thị dữ liệu report như sau:
7
III. Thiết kế REPORT
1. Thiết kế bằng chế độ Design view
………………….
2. Tạo đối tượng chứa giá trị một biểu thức:
- Dùng đối tượng Textbox.
- Để lấy giá trị của một control trên Report đang mở thì phải dùng tên Control trong
thuộc tính Name với cú pháp sau:
REPORT![TÊN REPORT]![TÊN CONTROL]
Nếu control thuộc Report đang thiết kế thì chỉ cần ghi: TÊN CONTROL
3. Thêm số thứ tự cho các record
B1: Thêm textbox trên vùng Detail
B2: Mở bảng thuộc tính của tetxbox trên và chọn nhóm DATA
B3: Đặt thuộc tính Control Source: =1
B4: Đặt thuộc tính Running Sum:
Over All: đánh STT tăng từ record đầu tới record cuối
Over Group: đánh STT tăng theo nhóm
No: Không tạo STT
IV. Tạo vùng GROUP trên Report
View/ Sorting and Grouping
o Field/Expression: Chọn biểu thức hoặc filed cần phân nhóm (biểu thức bắt đầu bởi
dấu =)
o Sort order: chọn cách sắp xếp
o Vùng Group Properties: chỉ định các thuộc tính của nhóm
Group Header, Group Footer: ẩn/hiện tiêu đề đầu/ cuối nhóm
Group On: chỉ định cách so sánh giá trị của Field/Expression để lập nhóm
Each Value: so sánh toàn bộ các giá trị, hay các chỉ định khác tùy theo kiểu
của Field/Expression
Kiểu Tetx: Perfix Characters (so sánh theo các kí tự đầu chuỗi)
Kiểu Number: Interval – nhóm theo khoảng giá trị
Group Interval: chỉ định số kí tự đầu hay khoảng giá trị phụ thuộc vào lựa chọn ở
Group On. Chú ý: chọn 1 khi Group On là Each Value
Keep Together: chỉ định cách in nhóm kế tiếp sau khi in xong nhóm hiện hành.
No: nếu trang còn trống thì in nhóm kế tiếp
Whole Group: In nhóm kế tiếp ở đầu trang mới
With first detail: In tiếp nhóm kế nếu phần còn lại của trang đủ in vùng đầu
nhóm và 1 dòng chi tiết, nếu không in đủ thì in nhóm kế tiếp ở đầu trang mới.
8
V. Tổng kết dữ liệu theo nhóm.
- Tạo textbox chứa công thức tại vùng Group cần tổng kết.
- Các hàm tổng kết: Count, Sum, Avg, Max, Min, tính toán dựa trên các field của bảng nguồn
- Ví dụ: Tạo report tổng hợp tiền mua của mỗi khách hàng theo từng năm.
Tạo textbox : =sum(thanhtien) đặt ở vùng GroupHeader hay Footer của Năm để tính
tổng tiền mua của năm. Đặt ở vùng GroupHeader hay Footer của MaKH để tính tổng tiền
mua của mỗi khách hàng
Report chứa tham số
Report có tham số thực chất là loại Report có khả năng lọc dữ liệu khi in.
Ví dụ: bình thường Report in ra danh sách học sinh sẽ in danh sách toàn bộ các học sinh.
Bây giờ muốn in danh sách học sinh một lớp nào đó? Lúc này phải cần đến report có tham
số.
Sau đây là cách giải quyết bài toán: In danh sách học sinh một lớp nào đó.
Lớp cần in được chọn từ Combo box một form như sau:
Sau khi chọn tên một lớp từ danh sách, nhấn nút In Report. Danh sách học sinh lớp
đã chọn sẽ được in ra một report.
Cách làm:
Bước 1: Tạo Report đáp ứng thông tin cần in
Sử dụng Report Design View để tạo ra một Report in danh sách học sinh với các
thông tin như sau:
9
Bước 2: Tạo form theo yêu cầu bài toán
- Sử dụng Combo Wizard để tạo Combobox lấy ra danh sách các lớp từ table LOP;
- Sử dụng Command button Wizard để tạo các nút lệnh Đóng và In Report
Bước 3: Thiết lập tham số cho Report
Ở đây trình bày phương pháp thiết lập tham số vào thuộc tính Record Source của
Report. Cách làm như sau:
- Mở report đã tạo được ở chế độ Design View (chế độ thiết kế);
- Mở query được thiết lập ở thuộc tính Record Source – nơi tạo nguồn dữ liệu và thiết
lập tham số cho field LOP của query như sau:
10
Trong đó: tham số cho field LOP là tên (Name) của ô Combo box chứa LOP được
chọn trên form F-LOP. Cú pháp viết tham chiếu tới một đối tượng trên form như sau:
Forms ! !
Trong trường hợp này tên ô Combo đó là Combo2 và tên của form là F-LOP, cách viết
tham số sẽ như sau:
Forms ! F-LOP ! Combo2
11
Ñeà 1
Söû duïng cô sôû döõ lieäu HOADON.MDB ñeå thöïc hieän caùc yeâu caàu sau :
CAÂU 1 : Taïo Crosstab query TK1 cho bieát soá löôïng caùc saûn phaåm baùn ñöôïc trong töøng naêm
Caâu 2 : taïo Form theo doi san pham coù daïng sau :
Yeâu caàu :
Trong Form treân coù 2 Sub form. Khi trong Main form choïn moät saûn phaåm naøo ñoù thì trong Sub
form 1 ( ôû treân) seõ xuaát hieän toång soá löôïng vaø toång soá tieàn baùn ñöôïc cuûa sanû phaåm ñoù, trong
sub form 2 ( ôû döôùi) seõ xuaát hieän caùc hoùa ñôn coù chöùa saûn phaåm ñoù.
Nuùt ÑOÙNG coù coâng duïng ñoùng Form.
12
Ñeà 2
Söû duïng cô sôû döõ lieäu HOADON.MDB ñeå thöïc hieän caùc yeâu caàu sau :
CAÂU 1 : Taïo Crosstab query Khach Hang – San Pham cho bieát soá tieàn moãi khaùch haøng ñaõ mua ñoái
vôùi töøng saûn phaåm.
CAÂU 2 : Taïo Form Hoa Don coù daïng nhö sau
Yeâu caàu : Form coù 2 Sub form : Sub form 1 cho bieát soá saûn phaåm vaø toàng soá tieàn, sub form 2 cho
bieát chi tieát hoùa ñôn ñöôïc choïn trong Main form.
13
Ñeà 3
Söû duïng cô sôû döõ lieäu HOADON.MDB ñeå thöïc hieän caùc yeâu caàu sau :
CAÂU 1 : : Taïo Crosstab query Khach Hang – San Pham cho bieát soá tieàn moãi khaùch haøng ñaõ mua
ñoái vôùi töøng saûn phaåm.
Caâu 2 : taïo Form theo doi san pham coù daïng sau :
Yeâu caàu :
Trong Form treân coù 2 Sub form. Khi trong Main form choïn moät khaùch haøng naøo ñoù thì trong
Sub form 1 ( ôû treân) seõ xuaát hieän toång soá tieàn vaø soá tieàn trung bình maø khaùch haøng ñoù ñaõ mua,
trong sub form 2 ( ôû döôùi) seõ xuaát hieän caùc hoùa ñôn maø khaùch haøng ñaõ mua.
14
ÑEÀ 4
Söû duïng cô sôû döõ lieäu KQTHI.MDB ñeå thöïc hieän caùc yeâu caàu sau :
CAÂU 1 : Taïo query KET QUA THI coù caùc vuøng sau:
SOBD, HOTEN, NGAY SINH, LOP, TOAN, VAN, NN, DTB, XEP LOAI
Trong ñoù : DTB laø dieåm trung bình cuûa 3 moân TOAN, VAN , NN
XEP LOAI ñöôïc xeáp theo tieâu chuaån sau :
Len thang : neáu DTB>=5 vaø khoâng coù moân naøo döôùi 3.
Thi lai : coøn laïi
CAÂU 2 :Taïo Crosstab query TK1 cho soá löôïng hoïc sinh trong töøng lôùp cuûa töøng xeáp loaïi.
Caâu 3 : taïo Form Lop coù daïng sau :
15
ÑEÀ 5
Söû duïng cô sôû döõ lieäu THI.MDB ñeå thöïc hieän caùc yeâu caàu sau :
CAÂU 1 : Taïo query KET QUA THI coù caùc vuøng sau:
SOBD, HOTEN, PHAI, NGAY SINH, LOP, TOAN, VAN, NN, DTB, XEP LOAI
Cho bieát : - DTB laø dieåm trung bình cuûa 3 moân TOAN, VAN , NN trong ñoù Toaùn heä
soá 3, Vaên heä soá 2 vaø NN heä soá 1.
- XEP LOAI ñöôïc xeáp theo tieâu chuaån sau :
Ñaäu : neáu khoâng coù moân naøo döôùi 5.
Rôùt : coøn laïi
CAÂU 2 :Taïo Crosstab query TK1 cho soá löôïng hoïc sinh trong töøng lôùp cuûa töøng xeáp loaïi.
Caâu 3 : taïo Form Lop coù daïng sau :
16
ÑEÀ 6
Söû duïng cô sôû döõ lieäu KQTHI.MDB ñeå thöïc hieäc caùc nhieäm v uï sau
1. Taïo query coù daïng sau :
LOP Ñieåm cao nhaát Gioûi Keùm Khaù Trung Bình
10A1 33.5 3 5 13 19
10A2 34.5 4 1 20 13
10A3 33.5 4 7 14 17
10A4 34 7 3 29 27
10A5 37 9 1 23 18
Ghi chuù
- Field Ñieåm cao nhaát : cho bieát toång ñieåm cao nhaát cuaû töøng lôùp.
- Toång ñieåm laø toång ñieåm cuûa caùc moân hoïc.
- Field Gioûi, Keùm, Khaù vaø Trung Bình cho bieát soá löôïng hoïc sinh coù xeáp loaïi laø Gioûi, Keùm, Khaù
vaø Trung Bình cuûa töøng lôùp.
- Hoïc sinh coù xeáp loaïi laø Gioûi neáu toång ñieåm lôùn hôn hoaëc baèng 32, laø Khaù neáu toång ñieåm lôùn
hôn hoaëc baèng 28, laø Trung Bình neáu toång ñieåm lôùn hôn hoaëc baèng 20 vaø laø Keùm neáu toång
ñieåm nhoû hôn 5.
2. Thieát keá Form sau
Löu yù :
Hoïc sinh coù keát quaû laø Ñaäu neáu toång ñieåm lôùn hôn hoaëc baèng 20 vaø khoâng coù moân naøo döôùi 4.
17
ÑEÀ 7
Söû duïng cô sôû döõ lieäu KQTHI.MDB ñeå taïo form sau
Ghi chuù
- Ñieåm trung bình : cho bieát ñieåm trung bình cuaû töøng lôùp.
- Toång ñieåm laø toång ñieåm cuûa caùc moân hoïc.
- Field Gioûi, Keùm, Khaù vaø Trung Bình cho bieát soá löôïng hoïc sinh coù xeáp loaïi laø Gioûi, Keùm, Khaù
vaø Trung Bình cuûa töøng lôùp.
- Hoïc sinh coù xeáp loaïi laø Gioûi neáu toång ñieåm lôùn hôn hoaëc baèng 32, laø Khaù neáu toång ñieåm lôùn
hôn hoaëc baèng 28, laø Trung Bình neáu toång ñieåm lôùn hôn hoaëc baèng 20 vaø laø Keùm neáu toång
ñieåm nhoû hôn 5.
- Hoïc sinh coù keát quaû laø Ñaäu neáu toång ñieåm lôùn hôn hoaëc baèng 20 , khoâng coù moân naøo döôùi 4 vaø
coù toái ña 2 moân döôùi 5.
18
ÑEÀ 8
Söû duïng cô sôû döõ lieäu HOADON.MDB ñeå thöïc hieäc caùc nhieäm vuï sau
1. Taïo query cho bieát toång soá tieàn baùn ñöôïc cuûa töøng saûn phaåm vaø soá tieàn baùn ñöôïc cuûa töøng saûn
phaåm baùn ñöôïc trong töøng naêm ( coù daïng nhö sau)
2. Thieát keá form sau :
Yeâu caàu :
- Thaønh tieàn : soá löôïng * Ñôn giaù. Neáu soá löông lôùn hôn 100 thì giaûm 3%, neáu soá löôïng lôùn hôn
10 thì giaûm 2%, coøn laïi thì khoâng giaûm.
19
ÑEÀ 9
Söû duïng cô sôû döõ lieäu HOADON.MDB ñeå thöïc hieäc caùc nhieäm vuï sau
1. Taïo query cho bieát toång soá tieàn baùn ñöôïc cuûa töøng nhaân vieân vaø soá tieàn baùn ñöôïc cuûa töøng
nhaân vieân ñoái vôùi töøng saûn phaåm ( coù daïng nhö sau)
2. Thieát form sau :
Yeâu caàu
- Thaønh tieàn = soá löôïng * ñôn giaù . Neáu saûn phaåm laø Gia vò thì giaûm 5%, neáu saûn phaåm laø Nem thì
giaûm 2%, coøn laïi thì khoâng giaûm.
20
ÑEÀ 10
Söû duïng cô sôû döõ lieäu HOADON.MDB ñeå thöïc hieäc caùc nhieäm vuï sau
1. Taïo query cho bieát toång soá tieàn cuûa töøng nhaân vieân ñaõ baùn vaø toång soá tieàn cuûa töøng nhaân vieân
ñaõ baùn trong töøng thaùng.
2. Thieát keá form sau :
Löu yù : Thaønh tieàn : soá löôïng * ñôn giaù. Neáu MaKH laø ASC thì giaûm 10%, neáu MaKH laø ASECO
thì giaûm 8%, coøn laïi thì khoâng giaûm.
21
ÑEÀ 11
Caâu 1 : Taïo maãu Form : CHI TIET SAN PHAM ñeå xem caùc thoâng tin veà töøng Saûn Phaåm vaø chi
tieát caùc hoùa ñôn ñaõ laäp cho saûn phaåm ñoù
hình 1
Hình 2
1.1 Moâ taû
Form treân coù chöùa Tab control.
Khi nhaép nuùt Saûn Phaåm seõ hieån thò caùc thoâng tin cuûa töøng saûn phaåm nhö hình 1.
Khi nhaép nuùt Chi Tieát Saûn Phaåm seõ xuaát hieän caùc thoâng tin veà caùc hoaù ñôn ñaõ laäp cho saûn
phaåm ñang xem ôû maøn hình 1 nhö hình 2.
22
ÑEÀ 12
Caâu 1 : Taïo maãu Form : KHACH HANG ñeå xem caùc thoâng tin veà töøng khaùch haøng vaø caùc hoùa ñôn
maø khaùch haøng ñaõ mua.
Hình 1
Hình 2
1.2 Moâ taû
Form treân coù chöùa Tab control.
Khi nhaép nuùt KHAÙCH HAØNG seõ hieån thò caùc thoâng tin cuûa töøng khaùch haøng nhö hình 1.
Khi nhaép nuùt CAÙC HOÙA ÑÔN xuaát hieän caùc thoâng tin veà caùc hoaù ñôn maø khaùch haøng ñoù ñaõ
mua.
Các file đính kèm theo tài liệu này:
- CHUONG_6.pdf