Công thức tính năm hiện tại
Year (CurrentDate)
Nhấn phải chuột vào biến “ngay” vừa tạo chọn Insert to Report và kéo nó vào vị trí sau chữ ngày. Làm tương tự với các biến “thang” và “nam”.
Nhấn phải chuột vào phần Page Footer chọn Insert / Text Object và nhập nội dung “Trang / ” để tạo phần thống kê số trang cho báo cáo. Sau đó, nhấn phải chuột vào phần Page Footer của báo cáo chọn Insert / Special Field / Page Number và kéo vào trước dấu / để hiển thị giá trị trang hiện tại. Nhấn phải chuột vào phần Page Footer của báo cáo chọn Insert / Special Field / Total Page Count và kéo vào sau dấu / để hiển thị giá trị tổng số trang của báo cáo.
Thực hiện kết nối dữ liệu cho báo cáo.
Tại cửa sổ Field Explorer, nhấn phải chuột vào Database Fields / Chọn Database Expert. Xuất hiện cửa sổ Database Expert, tiến hành kết nối tới nguồn dữ liệu và chọn thủ tục hiển thị dữ liệu cho báo cáo (thủ tục này viết trong phần store procedure của cơ sở dữ liệu SQL Server) giống như phần hướng dẫn ở trên.
Mã lệnh thủ tục TatCaHoaDonBanHang viết trong SQL SERVER
USE [QLYBH] GO
/****** Object: StoredProcedure [dbo].[TatCaHoaDonBanHang] Script Date: 12/07/2014 18:43:38 ******/
SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO
--
=============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
--
=============================================
CREATE PROCEDURE [dbo].[TatCaHoaDonBanHang]
-- Add the parameters for the stored procedure here
AS BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements. SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT tblBanHang.*, tblKhachHang.HoTen, tblKhachHang.DienThoai, tblKhachHang.DiaChi, tblMatHang.TenMatHang, tblMatHang.DVT, tblChiTietHoaDon.SoLuong, tblChiTietHoaDon.DonGia, tblChiTietHoaDon.SoLuong * tblChiTietHoaDon.DonGia AS ThanhTien FROM tblBanHang, tblKhachHang, tblMatHang, tblChiTietHoaDon WHERE tblBanHang.MaKH
= tblKhachHang.MaKH AND tblBanHang.SoHieuHD = tblChiTietHoaDon.SoHieuHD AND tblMatHang.MaMH = tblChiTietHoaDon.MaMH
RETURN END
Vì yêu cầu của báo cáo phải phân nhóm theo người bán hàng nên phải thêm vào báo cáo một Group bằng cách: Nhấn phải chuột vào phần Details của báo cáo chọn Insert / Group. Xuất hiện cửa sổ Insert Group.
Hình 116. Cửa sổ Insert Group
Trong tab Common, chọn trường NguoiBanHang từ danh sách các trường có trong báo cáo. Nhấn OK để thêm Group vào báo cáo.
Nhấn phải chuột vào phần Group Header Section1 chọn Insert / Special Field / Group Number và kéo vào phía trước của phần Group Name để thêm số thứ tự của nhóm cho báo cáo.
Để hiển thị chi tiết các đơn hàng mà mỗi người bán hàng đã bán thực hiện như
sau:
Tăng chiều cao cho phần Group Header Section1 bằng cách đưa chuột tới phần
giao giữa Group Header Section1 và Details và kéo lùi xuống phía dưới.
Từ cửa sổ Field Explorer lần lượt kéo các trường HoTen, TenMatHang, DVT, SoLuong, DonGia, ThanhTien vào phần Details của báo cáo. Điều chỉnh kích thước, vị trí của các trường cho phù hợp với việc thể hiện của báo cáo.
Mặc định khi kéo các trường từ cửa sổ Field Explorer vào phần Details của báo cáo thì Crystal Report sẽ thêm vào phần Page Header các tiêu đề của các trường này để mỗi khi chuyển sang trang mới nó sẽ xuất hiện ở đầu mỗi trang. Trong yêu cầu của báo cáo này thì khi hiển thị phía dưới tên mỗi người bán hàng sẽ là tên các trường cần
hiển thị và dữ liệu bán hàng sẽ lặp lại nhiều lần ở phía dưới. Do đó, cần phải kéo các tiêu đề này từ phần Page Header xuống phần Group Header Section1 và đặt chúng bên dưới của Group Name.
Nhấp đúp vào các tiêu đề này để sửa lại nội dung thành Khách hàng, Mặt hàng, ĐVT, Số lượng, Đơn giá, Thành tiền. Thiết lập định dạng và căn chỉnh các tiêu đề này phù hợp với yêu cầu của báo cáo.
Thêm số thứ tự vào phần danh sách các hóa đơn bán hàng của mỗi người bán
hàng:
Mặc định trong Crystal Report có trường Record Number để hiển thị thứ tự của
các bản ghi trong báo cáo. Tuy nhiên, trường này được thiết kế để tăng tự động nên khi sang Group mới thì nó không tự reset về 1. Vì vậy, để chèn cột số thứ tự vào đầu mỗi dòng trong danh sách các hóa đơn bán hàng của từng người bán phải thực hiện như sau:
Nháy phải chuột vào Running Total Field ở cửa sổ Field Explorer / chọn New.
Xuất hiện cửa sổ Create Running Total Field.
Hình 117. Cửa sổ Create Running Total Field
Chọn trường HoTen ở phần khung Available Tables and Fields, nhấn vào nút mũi tên quay sang phải để cung cấp thông số cho việc tính toán của biến này. Nhập stt_hoadon vào ô Running Total Name để đặt tên cho biến. Chọn hàm count ở mục
Type of summary. Chọn On change of group ở phần Reset. Nhấn OK để hoàn thành việc tạo biến đếm.
Bảng 7. Các hàm để tính toán với nhóm của Crystal Report
Ý nghĩa | |
Sum | Tính tổng tất cả các mặt hàng. |
Average | Tính trung bình trọng số tiêu chuẩn cho tất cả các mặt hàng. |
Maximum | Trả về giá trị lớn nhất. |
Minimum | Trả về giá trị nhỏ nhất. |
Count | Đếm tất cả các mặt hàng. |
Sample Variance | Tính phương sai mẫu thống kê của một ví sam cụ thể của các mặt hàng. |
Sample Standard Deviation | Tính độ lệch tiêu chuẩn thống kê của một mẫu cụ thể của các mặt hàng. |
Population Variance | Tính phương sai thống kê của toàn bộ dân số các mặt hàng. |
Population Standard Deviation | Tính độ lệch tiêu chuẩn thống kê của toàn bộ dân số của các mặt hàng. |
Distinct Count | Tính số mặt hàng riêng biệt. Ví dụ, nếu hai trường hợp khác nhau của "David" xuất hiện trong danh sách, họ sẽ chỉ được tính một lần. |
Correlation | Tính số đo của mối quan hệ giữa hai hoặc nhiều mục |
Covariance | Tính một biện pháp của phương sai giữa hai hoặc nhiều mục. |
Weighted Average | Tính trung bình, trọng bởi số lần một item xuất hiện. |
Median | Tính trung bình thống kê của tất cả các mặt hàng. |
Nth Percentile | Tính percentile thứ N, trong đó N được xác định trước số. |
Nth Largest | Trả về Nth mục lớn nhất, trong đó N được xác định |
Có thể bạn quan tâm!
- Thực hành lập trình CSDL với VB.net - 26
- Thực hành lập trình CSDL với VB.net - 27
- Thực hành lập trình CSDL với VB.net - 28
- Thực hành lập trình CSDL với VB.net - 30
- Thực hành lập trình CSDL với VB.net - 31
- Thực hành lập trình CSDL với VB.net - 32
Xem toàn bộ 318 trang tài liệu này.
trước số. | |
Nth Smallest | Trả về các mục nhỏ nhất thứ N, trong đó N được xác định trước số. |
Mode | Tính chế độ thống kê của tất cả các mặt hàng. |
Nth Most Frequent | Trả về Nth mục thường xuyên nhất, trong đó N là một số prede phạt. |
Nhấn phải chuột vào biến stt_hoadon ở phần Running Total Field chọn Insert to Report và kéo vào phía trước của trường HoTen trong phần Details.
Để tạo biến chứa tổng tiền của mỗi người bán hàng thực hiện như sau: Nháy phải chuột vào Running Total Field ở cửa sổ Field Explorer / chọn New. Xuất hiện cửa sổ Create Running Total Field.
Hình 118. Cửa sổ Create Running Total Field
Chọn trường ThanhTien ở phần khung Available Tables and Fields, nhấn vào nút mũi tên quay sang phải để cung cấp thông số cho việc tính toán của biến này. Nhập tongtientheonhom vào ô Running Total Name để đặt tên cho biến. Chọn hàm sum ở mục Type of summary. Chọn On change of group ở phần Reset. Nhấn OK để hoàn thành việc tạo biến đếm.
Nhấn phải chuột vào biến tongtientheonhom ở phần Running Total Field chọn Insert to Report và kéo vào GroupFooterSection1 sau nhãn “Tổng tiền”.
Chuyển sang cửa sổ Main Report Preview để xem thử kết quả của báo cáo. Ta nhận thấy rằng các biến ngay, thang, nam khi hiển thị đều có thêm 2 số 0 đằng sau dấu phẩy. Đây là tùy chọn hiển thị mặc định của các trường có giá trị số. Để bỏ các số 0 này khi hiển thị báo cáo thực hiện như sau:
Nháy phải chuột vào biến ngay ở phần Report Footer, chọn Format Embedded Field. Xuất hiện cửa sổ Format Editor / chọn Customize. Xuất hiện cửa sổ Custom Style.
Hình 119. Cửa sổ Custom Style
Thay đổi ở phần Decimals, Rounding về giá trị 1, bỏ dấu chọn ở mục Thousands Separator. Nhấn OK hai lần để áp dụng.
Thực hiện tương tự với các biến thang, nam.
3. Kết quả thiết kế
Hình 120. Kết quả thiết kế báo cáo thống kê bán hàng bằng Crystal Report