BÀI 4: THIẾT KẾ BÁO BIỂU – REPORT

BÀI TẬP

Bài tập 4.1: Tạo Report danh sách nhân viên

Yêu cầu: Tạo Report từ bảng tbl_Thong_Tin_Ca_Nhan_Cua_Nhan_Vien hiển thị:

  • MaNVHoVaTenPHAINgaySinhNoiSinh

  • Đặt tiêu đề: “DANH SÁCH NHÂN VIÊN”

  • Đánh số trang ở cuối trang

Bài tập 4.2: Tạo Report có phân nhóm

Hướng dẫn 

Yêu cầu: Tạo Report từ bảng tbl Danh Sach Nhan Vien và tbl_Danh_Sach_Phong_Ban:

  • Hiển thị thông tin nhân viên: MaNVHoVaTenChucVuLuongCoBan

  • Phân nhóm theo phòng ban (tên phòng)

  • Trong mỗi nhóm, sắp xếp theo tên nhân viên

  • Tính tổng lương mỗi phòng (Group Footer)

  • Tính tổng lương toàn báo cáo (Report Footer)

Bài tập 4.3: Tạo Report từ Query

Yêu cầu:

  • Tạo Query tính lương tăng ca (LTC = Lương cơ bản × số giờ tăng ca)

  • Tạo Report từ Query này, hiển thị: MaNVHoVaTenSoGioTangCaLuongCoBanLTC

  • Sắp xếp theo LTC giảm dần

Bài tập 4.4: Báo cáo lương nhân viên theo phòng ban

Yêu cầu:

Tạo Report từ bảng tbl Danh Sach Nhan Vien và tbl_Danh_Sach_Phong_Ban với các yêu cầu sau:

1. Nguồn dữ liệu:

  • Sử dụng Query có tên qry_LuongNhanVien (tạo trước) kết hợp 2 bảng trên

  • Các trường hiển thị: MaNVHoVaTenTenPBChucVuLuongCoBan

2. Phân nhóm và sắp xếp:

  • Phân nhóm theo TenPB (tên phòng ban)

  • Trong mỗi nhóm, sắp xếp LuongCoBan giảm dần (lương cao nhất lên đầu)

3. Các vùng và nội dung:

  • Report Header:

    • Tiêu đề: “BÁO CÁO LƯƠNG NHÂN VIÊN THEO PHÒNG BAN”

    • Font chữ: Arial, size 18, in đậm, căn giữa

    • Đường kẻ ngang bên dưới

  • Page Header:

    • Các tiêu đề cột: MÃ NV, HỌ VÀ TÊN, CHỨC VỤ, LƯƠNG (VNĐ)

    • Nền màu xám nhạt

  • Group Header (TenPB):

    • Hiển thị tên phòng ban

    • Font chữ: Arial, size 14, in đậm, màu xanh đậm

    • Nền màu vàng nhạt

  • Detail:

    • Hiển thị dữ liệu từng nhân viên

    • Xen kẽ màu nền giữa các dòng (dòng chẵn màu trắng, dòng lẻ màu xám nhạt)

  • Group Footer (TenPB):

    • Tổng số nhân viên trong phòng: =Count(*)

    • Tổng lương của phòng: =Sum([LuongCoBan])

    • Định dạng số: Standard, 0 số lẻ

    • Đường kẻ ngang phân cách giữa các nhóm

  • Report Footer:

    • Tổng số nhân viên toàn công ty

    • Tổng lương toàn công ty

    • Dòng chữ: “NGƯỜI LẬP BÁO CÁO”

    • Đường kẻ ngang

  • Page Footer:

    • Số trang: “Trang [Page] / [Pages]”

    • Căn giữa, font chữ size 10

4. Định dạng bổ sung:

  • Định dạng cột Lương: Format Currency (VND), 0 số lẻ

  • Căn lề: Cột Mã NV và Tên căn trái, cột Lương căn phải

  • Độ rộng các cột vừa với nội dung

Bài tập 4.5: báo cáo tổng hợp chấm công và tăng ca

Yêu cầu:

Tạo Report từ bảng tbl Cham Cong Hang Ngay và tbl Theo Doi Gio Tang Ca kết hợp với bảng thông tin nhân viên.

1. Nguồn dữ liệu:

  • Tạo Query qry_ChamCongTangCa kết hợp 3 bảng:

    • tbl_Thong_Tin_Ca_Nhan_Cua_Nhan_Vien

    • tbl Cham Cong Hang Ngay

    • tbl Theo Doi Gio Tang Ca

  • Các trường: MaNVHoVaTenNgayNghiKhongPhepNghiCoPhepPhepNamNghiBenh75NghiBenh100SoGioTangCa

2. Tính toán các trường mới trong Query:

  • TongNgayNghi[NghiKhongPhep] + [NghiCoPhep] + [PhepNam] + [NghiBenh75] + [NghiBenh100]

  • TienPhat[NghiKhongPhep] * 200000 (phạt 200,000/ngày nghỉ không phép)

  • TienThuongTangCa[SoGioTangCa] * 50000 (thưởng 50,000/giờ tăng ca)

3. Cấu trúc Report:

  • Report Header:

    • Tiêu đề: “BÁO CÁO TỔNG HỢP CHẤM CÔNG VÀ TĂNG CA”

    • Tháng/Năm: hiển thị tháng và năm hiện tại: = "Tháng " & Month(Date()) & " năm " & Year(Date())

    • Logo (chèn hình ảnh nếu có)

  • Page Header:

    • Các tiêu đề cột: MÃ NV, HỌ TÊN, NGÀY, NGHỈ KP, NGHỈ CP, PHÉP NĂM, NGHỈ BỆNH, TỔNG NGHỈ, GIỜ TC, THƯỞNG TC, PHẠT

  • Detail:

    • Hiển thị chi tiết từng ngày chấm công của từng nhân viên

    • Nếu NghiKhongPhep > 0 thì tô màu đỏ cho ô đó

  • Group Header (MaNV):

    • Hiển thị mã nhân viên và họ tên

    • Font chữ in đậm

  • Group Footer (MaNV):

    • Tổng số ngày nghỉ không phép: =Sum([NghiKhongPhep])

    • Tổng số ngày nghỉ có phép: =Sum([NghiCoPhep])

    • Tổng số giờ tăng ca: =Sum([SoGioTangCa])

    • Tổng tiền thưởng tăng ca: =Sum([TienThuongTangCa])

    • Tổng tiền phạt: =Sum([TienPhat])

    • Đường kẻ ngang

  • Report Footer:

    • Tổng số nhân viên có chấm công

    • Tổng số ngày nghỉ không phép toàn công ty

    • Tổng số giờ tăng ca toàn công ty

    • Tổng tiền thưởng và phạt toàn công ty

  • Page Footer:

    • Số trang

    • Ngày in: =Date()

4. Bộ lọc:

  • Thêm bộ lọc tham số để người dùng có thể chọn tháng và năm cần in báo cáo

  • Gợi ý: Tạo tham số [Nhap thang] và [Nhap nam] trong Query