Thứ Sáu, 2 tháng 9, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 6 - Thêm các thành phần điều khiển tính toán

James Perry, Richard Newmark


Chương 6
Tạo và dùng báo cáo


Thêm các thành phần điều khiển tính toán


So sánh báo cáo với Hình 6.21, bạn thấy rằng hóa đơn thiếu các giá trị thành tiền, thuế doanh thu, và tổng thành tiền. Đó là các thành phần điều khiển tính toán, bạn sẽ thêm chúng vào báo cáo ở góc nhìn Design. Thành phần điều khiển tính toán (calculated controls) là thành phần điều khiển chứa biểu thức trỏ đến các thành phần điều khiển bị ràng buộc, hằng số, và hàm Access. Các biểu thức sẽ tiến hành tính toán vào thời điểm phát sinh báo cáo, thành phần điều khiển tính toán là ô văn bản chứa biểu thức bạn gõ vào thuộc tính Control Source. Ô văn bản là một trong nhiều kiểu thành phần điều khiển trong nhóm Controls ở góc nhìn Design thuộc tab ngữ cảnh Design. Ta sẽ thêm các thành phần điều khiển tính toán cần thiết ở phần kế.

Biểu thức chứa các toán tử số học, các hằng số hay ký tự, các tên trường bảng, và các đối tượng báo cáo nhằm tạo nên thành phần điều khiển tính toán và bảo Access cách tính và hiển thị kết quả. Chẳng hạn, truy vấn qryInvoiceReport, nhằm cung cấp thông tin cho báo cáo, chứa một số biểu thức. Trong đó có biểu thức tính tích các trường Quantity, UnitPrice, và Discount. Biểu thức đó được đặt vào hàm có sẵn Round, nhằm làm tròn kết quả về hai vị trí thập phân. Biểu thức đó như sau:

Round([tblInvoiceLine]![Quantity]* [tblInvoiceLine]![UnitPrice]* (1-[tblInvoiceLine]![Discount]),2)

Bạn có thể tạo thành phần điều khiển tính toán, hay biểu thức, trong forms và báo cáo. Chẳng hạn, tổng từng phần Subtotal, thuế doanh thu Sales Tax, phí vận chuyển Shipping, và tổng Total ở Hình 6.21 là các trường tính toán. Chúng không phải là giá trị lưu trong bảng, vì điều đó vi phạm qui tắc chuẩn hóa và nhanh chóng đưa đến tình trạng dữ liệu không nhất quán. Vì bốn trường đều được tính toán, các giá trị của chúng thay đổi theo từng hóa đơn. Report Wizard sẽ tạo trường báo cáo tổng từng phần Subtotal trong InvoiceID Footer nếu bạn kích nút Summary Options rồi đánh dấu ô Sum bên dưới cột Extended. Tuy nhiên, ta sẽ không theo cách đó. Thay vào đó, bạn sẽ tạo thành phần điều khiển tính toán Subtotal còn thiếu. Nó sẽ tính tổng các trường thành tiền cho từng hóa đơn. Sau này, bạn sẽ tạo các thành phần điều khiển tính toán khác gồm Sales Tax, Shipping, và Total.

Biểu thức trong thuộc tính Control Source của thành phần điều khiển sẽ trỏ đến thành phần điều khiển báo cáo tổng thành phần bạn tạo để tính tổng thành tiền. Trong bài tập kế bạn sẽ tạo thành phần điều khiển đó, bạn sẽ đổi tên nó là ctlSubtotal. Tiền tố ctrl giúp bạn nhớ nguồn giá trị là một thành phần điều khiển báo cáo. Việc gán tên đối tượng chẳng hạn ctlSubtotal hay ctlSalesTax thực hiện hai điều quan trọng. Thứ nhất, tên cho biết ý nghĩa của trường  bạn tạo trong tài liệu thiết kế (báo cáo hay form). Thứ hai, tên sẽ gợi nhớ khi bạn tạo các biểu thức tính toán khác.

Bài tập kế sẽ hướng dẫn từng bước việc tạo thành phần điều khiển tính toán ctlSubtotal. Nó xuất hiện ngay bên dưới cột Extended trong InvoiceID Footer. Nó không thể xuất hiện trong phần Detail vì đầu tiên Access phải hiển thị toàn bộ các dòng hóa đơn trong một hóa đơn trước khi có thể tổng kết chúng. Vì thế, chân nhóm là nơi lý tưởng cho tổng thành phần subtotal và các tính toán khác trên nhóm các bản ghi liên quan trong một báo cáo. Nhưng đầu tiên, bạn cần tạo nhiều khoảng không hơn trong InvoiceID Footer để nó có thể chứa nhiều trường hơn.

BÀI TẬP 6.29 TẠO THÀNH PHẦN ĐIỀU KHIỂN TÍNH TOÁN TỔNG THÀNH PHẦN SUBTOTAL

1. Kích phải MyInvoiceReportVer2 trong Navigation Pane; kích Design View trong pop-up menu.

2. Di chuột đến cạnh trên của Page Footer. Khi con trỏ chuyển thành mũi tên hai đầu, kéo cạnh trên của Page Footer xuống dưới khoảng một inch. Hành động này sẽ tạo khoảng không cho các thành phần điều khiển tính toán mà bạn sẽ thêm vào.

3. Kích tab ngữ cảnh Design, nếu cần. Kích Group & Sort trong nhóm Grouping & Totals để đóng khung Group, Sort, and Total. Hành động này sẽ làm thoáng màn hình.

4. Kích Text Box trong nhóm Controls. Đó là biểu tượng “ab|” trong nhóm Controls. (di con trỏ chuột lên đó vài giây, gợi ý Text Box sẽ xuất hiện.)

5. Di (không phải kéo) con trỏ chữ thập đến vị trí trong InvoiceID Footer ngay bên dưới thành phần điều khiển bị ràng buộc Extended trong dải Detail. Kích chuột để đặt nhãn và ô văn bản trống vào InvoiceID Footer (xem Hình 6.25).

Hình 6.25 Đặt ô văn bản vào chân nhóm.

6. Kích Property Sheet trong nhóm Tools thuộc tab ngữ cảnh Design để hiển thị Property Sheet của thành phần điều khiển ô văn bản.

7. Kích Other tab trong Property Sheet, kích thuộc tính Name để làm nổi bật giá trị được gán cho nó, gõ ctlSubtotal, rồi nhấn Enter để đặt lại tên cho thành phần điều khiển ô văn bản.

8. Kích Format tab trong khung Property Sheet, kích thuộc tính Format, kích mũi tên ô danh sách thuộc tính, rồi kích Currency từ danh sách (xem Hình 6.26).

Hình 6.26 Định dạng một thành phần điều khiển.

9. Kích Data tab trong Property Sheet.

10. Kích ô văn bản Control Source, rồi kích nút Build xuất hiện bên phải thuộc tính Control Source. (Nút Build có dấu ba chấm.) Hộp thoại tạo biểu thức Expression Builder xuất hiện.

11. Trong hộp thoại Expression Builder, gõ =SUM([Extended]) rồi kích OK để đóng hộp thoại. Đảm bảo rằng tên trường được bao bằng cặp ngoặc vuông rồi được bao bằng cặp ngoặc tròn.

12. Kích, kích lần nữa, thành phần điều khiển nhãn bên trái thành phần điều khiển tính toán để chọn toàn bộ văn bản hiện thời của nó, gõ Subtotal, rồi nhấn Enter.

13. Kích nhãn để khử việc chọn nó (nếu cần).

14. Kích Format tab, kích thuộc tính Text Align, kích mũi tên ô danh sách của nó để hiển thị danh sách lựa chọn, rồi kích Right. Kích bên ngoài nhãn để khử việc chọn nó.

15. Đóng Property Sheet.

Bạn rất có thể muốn xem liệu thành phần điều khiển vừa thêm có hoạt động và hiển thị tốt không. Bài tập nhỏ kế sẽ sửa vài chi tiết cuối cùng trên thành phần điều khiển và nhãn của nó.

BÀI TẬP 6.30: SỬA VÀI CHI TIẾT NHỎ TRÊN THÀNH PHẦN ĐIỀU KHIỂN VÀ NHÃN CỦA NÓ

1. Kích phải MyInvoiceReportVer2 tab rồi kích Layout View.

2. Xét vị trí và kích cỡ của thành phần điều khiển tính toán và nhãn của nó. Điều chỉnh chiều dài nhãn bằng cách kéo biên trái của nó, nếu cần.

3. Nếu cần, điều chỉnh chiều dài của bản thân thành phần điều khiển tính toán để nó không đè lên nhãn.

4. Nếu cần, kích thành phần điều khiển tính toán rồi dùng các phím mũi tên để di chuyển từng bước nhỏ sao cho thẳng hàng với giá thành Extended cuối cùng – 176.03 trong trường hợp này. Tổng giá trị phải là $637.59, khớp giá trị trong Hình 6.27.

Hình 6.27 Báo cáo với thành phần điều khiển tính toán hoàn chỉnh.

5. Lưu báo cáo dưới tên mới: Kích File tab, kích Save As, kích kép Save Object As, gõ MyInvoiceReportVer3 vào ô văn bản Save As, rồi kích OK. Access sẽ lưu báo cáo và đóng hộp thoại.

Thủ tục thêm các thành phần điều khiển thuế doanh thu, phí vận chuyển, và tổng thành tiền sẽ tương tự các bước trên. Đây là bài tập cho bạn.

Không có nhận xét nào:

Đăng nhận xét