Back to Main Site

Cách xây dựng báo cáo bảng chấm công động theo nhân viên, khách hàng và khoảng ngày

Last updated on Jul 10, 2026 4:19 AM

Trước khi đi vào phần hướng dẫn, điều quan trọng là phải hiểu cơ chế cốt lõi đằng sau Data Builder. Report Templates (Mẫu báo cáo) chỉ đơn giản là danh sách các báo cáo phổ biến được thiết kế sẵn để bạn dễ dàng sử dụng, áp dụng và điều chỉnh.

Tính năng chính ở đây thực chất là View Builder. Đây là một công cụ mạnh mẽ giúp bạn tạo ra bất kỳ loại báo cáo nào dựa trên các mối quan hệ dữ liệu trong cơ sở dữ liệu cốt lõi của Perfex CRM, cũng như các mô-đun bên thứ ba như Kế toán, SaaS, WooSync hoặc chính mô-đun Data Builder.

Thách thức

Một yêu cầu rất phổ biến mà chúng tôi thường thấy từ các quản trị viên Perfex CRM là:

“Tôi cần một báo cáo để xem thời gian làm việc đã ghi nhận trong tuần này, tháng này hoặc tháng trước, được lọc theo một nhân viên cụ thể và một khách hàng cụ thể. Tôi có cần xây dựng một mẫu SQL mới để đưa dữ liệu khách hàng vào không?”

Thông thường, để trả lời câu hỏi này, bạn phải gọi lập trình viên viết một truy vấn SQL mới liên kết nhiều bảng. Nếu bạn muốn kiểm tra một nhân viên khác vào ngày mai, bạn sẽ phải sửa đổi truy vấn hoặc xây dựng hệ thống xử lý tham số phức tạp.

Với Data Builder cho Perfex CRM, bạn không cần phải tạo mẫu mới. Giải pháp đơn giản và mạnh mẽ hơn nhiều: sử dụng các Bộ lọc động (Saved Filters) và các Macro ngày động ngay trên các mẫu toàn diện có sẵn.

Dưới đây là hướng dẫn từng bước để thực hiện chính xác yêu cầu này.

Bước 1: Bắt đầu với Mẫu báo cáo phù hợp

Thay vì bắt đầu từ con số 0, chúng ta sẽ sử dụng một mẫu thiết kế sẵn đã ánh xạ tất cả các mối quan hệ cần thiết.

Lưu ý quan trọng về bộ lọc mặc định

Theo mặc định, khi bạn áp dụng mẫu này, báo cáo được cấu hình để luôn hiển thị bảng chấm công của tuần hiện tại. Điều này được kiểm soát bởi một điều kiện WHERE mặc định trong trình xây dựng báo cáo:

  • Điều kiện: Start Time >= {{CURRENT_WEEK_START}}

Macro {{CURRENT_WEEK_START}} làm gì? Đây là một macro ngày động tự động trả về ngày và giờ bắt đầu của tuần hiện tại (ví dụ: Thứ Hai 00:00:00).

Bước quan trọng: Nếu bạn muốn mở rộng bộ lọc bảng chấm công để bao gồm các điều kiện khác như 7 ngày trước, tháng này, tháng trước, hôm nay, năm nay, năm ngoái hoặc lọc theo các nhân viên cụ thể trên toàn bộ thời gian, bạn phải xóa điều kiện mặc định này trong Report View Builder trước khi lưu và xem báo cáo.

Bước 2: Sử dụng Trình xây dựng bộ lọc lúc xem báo cáo (Runtime Filter Builder)

Sau khi đã xóa điều kiện mặc định và đang xem bảng dữ liệu Data Builder (Preview Data), bạn có thể sử dụng giao diện bộ lọc trực quan để phân tách dữ liệu theo nhu cầu.

Nhấp vào nút “+ Condition” phía trên bảng dữ liệu để bắt đầu tạo các bộ lọc cụ thể.

A. Lọc theo khoảng ngày động (Sử dụng Macro)

Data Builder cung cấp các Macro ngày động mạnh mẽ tự động tính toán ngày tương đối. Điều này có nghĩa là bạn không bao giờ phải chọn ngày thủ công nữa. Dưới đây là các trường hợp sử dụng phổ biến nhất:

Tuần này

Xem toàn bộ số giờ làm việc được ghi nhận từ đầu tuần hiện tại đến nay.

Cột:      Start Time
Toán tử:  >= (Lớn hơn hoặc bằng)
Giá trị:  {{CURRENT_WEEK_START}}

Tháng này

Xem toàn bộ số giờ làm việc từ ngày đầu tiên của tháng hiện tại.

Cột:      Start Time
Toán tử:  >=
Giá trị:  {{CURRENT_MONTH_START}}

(Hoặc bạn có thể dùng toán tử = và giá trị {{CURMONTH}} tùy thuộc định dạng cột).

Hôm nay

Xem số giờ làm việc ghi nhận trong ngày.

Cột:      Start Time
Toán tử:  >= (hoặc = cho cột định dạng chỉ có ngày)
Giá trị:  {{CURDATE}}

7 ngày trước (Tuần cuốn chiếu)

Xem số giờ được ghi nhận trong đúng 7 ngày qua, không phụ thuộc vào ngày bắt đầu tuần.

Cột:      Start Time
Toán tử:  >=
Giá trị:  {{CURDATE-7}}

Các Macro ngày khác bạn có thể sử dụng:

{{CURDATE-1}}  : Trả về ngày Hôm qua.
{{CURDATE-30}} : Trả về ngày cách đây đúng 30 ngày.
{{CURMONTH-1}} : Trả về giá trị Tháng trước.
{{CURYEAR-1}}  : Trả về giá trị Năm trước.

B. Lọc theo nhân viên (Staff Member)

Tiếp theo, chúng ta giới hạn dữ liệu cho một nhân viên cụ thể bằng cách thêm điều kiện lọc theo cột nhân viên.

C. Lọc theo khách hàng (Customer)

Cuối cùng, lọc riêng các bảng chấm công cho một khách hàng cụ thể.

Bước 3: Lưu thành một bộ lọc tùy chỉnh nhanh (Saved Filter)

Nhấp vào Apply. Bảng sẽ lập tức cập nhật để hiển thị kết quả đã lọc của bạn (ví dụ: Chỉ hiển thị số giờ làm việc của Admin trong tuần này).

Nhưng chúng ta không muốn phải xây dựng lại các bộ lọc này mỗi khi cần xem báo cáo!

Các bộ lọc đã lưu của bạn sẽ xuất hiện dưới dạng các **nút truy cập nhanh (tab)** ngay phía trên thanh bộ lọc. Bạn có thể tạo hàng tá các chế độ xem này trỏ cùng về một báo cáo duy nhất!

Kết quả: Một mẫu, báo cáo vô tận

Bằng cách tận dụng các tính năng **Saved Filters** và **Dynamic Macros**, bạn đã giải quyết bài toán một cách hiệu quả:

  • Không cần Code: Bạn không cần viết một dòng SQL nào.

  • Truy cập một cú nhấp: Lần tới khi bạn cần báo cáo, chỉ cần nhấp vào tab đã lưu như “Tháng này” hoặc “Hôm nay”. Các macro sẽ tự động tính toán ngày chính xác.

  • Khả năng mở rộng cao: Bạn có thể tạo các chế độ xem tùy chỉnh cho từng quản lý và từng khách hàng mà không cần nhân bản các mẫu báo cáo.

Xem trực tiếp hoạt động

Bạn có thể thử nghiệm báo cáo này và xem cách hoạt động của bộ lọc trên trang demo trực tiếp của chúng tôi: