Cộng, trừ, nhân và chia các giá trị trong điều khiển
Áp dụng cho
Bạn có thể giúp người dùng điền vào biểu mẫu dựa trên mẫu biểu mẫu của bạn bằng cách sử dụng các công thức để tính toán giá trị cho một điều khiển, dựa trên dữ liệu mà người dùng nhập vào các điều khiển khác. Các phép tính có thể bao gồm cộng, trừ, nhân và chia các giá trị. Ví dụ, nếu bạn đang thiết kế một mẫu biểu mẫu mà nhà thầu điện sẽ sử dụng để xin giấy phép, bạn có thể thêm một công thức vào một điều khiển tự động tính toán tổng giá mà nhà thầu phải thanh toán cho ứng dụng bằng cách nhân số lượng giấy phép trong ứng dụng với giá của mỗi giấy phép.
Trong bài viết này
- Công thức là gì?
- Sử dụng hai hoặc nhiều toán tử trong một công thức
- Chèn công thức toán học vào điều khiển
Công thức là gì?
Công thức là một biểu thức XPath bao gồm các giá trị, trường hoặc nhóm, hàm và toán tử được sử dụng để tính toán và hiển thị các giá trị khác. Công thức có thể được sử dụng để thực hiện các tác vụ sau đây:
- Tính toán giá trị toán học từ các giá trị mà bạn chỉ định khi thiết kế mẫu biểu mẫu hoặc giá trị mà người dùng nhập vào điều khiển khi họ điền biểu mẫu dựa trên mẫu biểu mẫu của bạn.
- Hiển thị ngày và giờ cụ thể.
- Hiển thị các giá trị mà người dùng nhập vào một điều khiển trong điều khiển khác.
- Đặt giá trị mặc định cho trường hoặc điều khiển.
- Chạy quy tắc dựa trên giá trị được tính toán bằng cách dùng công thức.
Mỗi biểu thức XPath được sử dụng trong công thức là tổ hợp các giá trị, hàm và toán tử đánh giá một giá trị duy nhất. Một công thức có thể chứa một vài biểu thức. Bạn có thể nghĩ về một công thức như một câu được tạo thành từ một hoặc nhiều cụm từ, với mỗi cụm từ thể hiện một biểu thức trong công thức.
Minh họa sau đây cho thấy mối quan hệ giữa một công thức và một biểu thức.
Hàm là một biểu thức trả về một giá trị dựa trên kết quả của một phép tính. Giá trị được sử dụng trong các hàm được gọi là đối số. Bạn có thể sử dụng các hàm XPath 1.0 tiêu chuẩn được bao gồm trong InfoPath, cũng như một số hàm cụ thể của InfoPath. Tìm các nối kết để biết thêm thông tin về các hàm InfoPath trong phần Xem thêm.
Sử dụng hai hoặc nhiều toán tử trong một công thức
Khi một công thức chứa hai hoặc nhiều toán tử toán học, InfoPath thực hiện tính toán theo mức độ ưu tiên của toán tử. Danh sách sau đây hiển thị thứ tự thực hiện các thao tác:
- Tính toán trong dấu ngoặc đơn
- Tính toán nhân và chia
- Phép tính cộng và trừ
Nếu công thức bao gồm hai toán tử có cùng mức độ ưu tiên, các phép tính được thực hiện từ trái sang phải.
Ví dụ, hãy tưởng tượng rằng bạn đang tạo ra một mẫu đơn xin phép có một hộp văn bản hiển thị tổng chi phí của tất cả các giấy phép nộp trong một ứng dụng. Các giá trị mà công thức này yêu cầu đến từ các hộp văn bản khác trong biểu mẫu. Hộp văn bản hiển thị tổng chi phí chứa công thức sau đây:
txtPermit1Qty * txtPermitCost1 + txtPermit2Qty * txtPermitCost2 /txtNumberOfPermits
Công thức này bao gồm toán tử phép cộng (+), nhân (*) và chia (/). Theo mức độ ưu tiên của các toán tử, phép tính nhân và chia được thực hiện trước khi tính toán cộng. Vì các toán tử nhân và chia có ưu tiên tương tự, nên tính toán nhân được thực hiện trước toán tử chia vì toán tử nhân nằm ở bên trái toán tử chia. Công thức được tính theo cách này:
- Giá trị trong txtPermit1Qty được nhân với giá trị trong txtPermitCost1.
- Giá trị trong txtPermit2Qty được nhân với giá trị trong txtPermitCost2 và kết quả đó được chia cho giá trị trong txtNumberOfPermits.
- Kết quả tính toán ở bước 1 sẽ được thêm vào kết quả tính toán ở bước 2.
Để kiểm soát thứ tự tính toán, hãy đặt phép tính mà bạn muốn thực hiện trước tiên trong dấu ngoặc đơn. Các phép tính trong dấu ngoặc đơn được thực hiện trước khi tính toán bên ngoài dấu ngoặc đơn. Đặt phép tính với dấu ngoặc đơn ở bên trái các phép tính mà không cần dấu ngoặc đơn. Tính toán trong dấu ngoặc đơn lồng được thực hiện hoạt động từ dấu ngoặc đơn bên trong đến dấu ngoặc đơn bên ngoài.
Ví dụ, hãy cân nhắc công thức sau đây:
((txtPermit1Qty * txtPermitCost1) + (txtPermit2Qty * txtPermitCost2))/txtNumberOfPermits
Trong tính toán này, giá trị kết quả từ việc nhân các giá trị trong txtPermit1Qty và txtPermitCost1 được thêm vào giá trị do nhân các giá trị trong txtPermit2Qtyvà txtPermitCost2. Sau đó, tổng của phép tính đó được chia cho giá trị trong txtNumberOfPermits.
Chèn công thức toán học vào điều khiển
Bấm đúp vào điều khiển hoặc trường mà bạn muốn tạo công thức.
Bấm vào tab Dữ liệu.
Bấm Chèn Công thức
.Để chèn một toán tử giá trị hoặc toán học vào công thức, hãy nhập giá trị hoặc ký hiệu cho phép toán vào hộp Công thức.
Danh sách toán họcHoạt động Biểu tượng Thêm + Trừ - Nhân * Chia / Lưu ý
Nếu công thức của bạn dùng toán tử chia (/), hãy đảm bảo có khoảng trắng trước và sau toán tử chia. Nếu toán tử chia không có khoảng trắng trước và sau nó, InfoPath có thể hiểu '/' là dấu phân cách cho các bước vị trí XPath chứ không phải là toán tử chia.
Mẹo
Công thức toán học thường phụ thuộc vào giá trị số nguyên hoặc thập phân làm đối số. Để tránh các giá trị trống trong công thức của bạn, hãy chọn hộp kiểm Xử lý giá trị trống là bằng không trong thể loại Nâng cao trong hộp thoại Tùy chọn Biểu mẫu.
Để kiểm tra công thức cho đúng cú pháp, trong hộp thoại Chèn Công thức, hãy bấm Xác nhận Công thức.
Công thức của tôi chứa lỗi
Bấm hiện Chi tiết trong hộp thoại Microsoft Office InfoPath để xem các lỗi trong công thức. Sau đây là một số gợi ý để giải quyết các lỗi này:- Nếu bạn đang dùng hàm trong công thức của mình, hãy xác nhận rằng bạn đang dùng các đối số chính xác cho hàm. Một số hàm yêu cầu trường hoặc nhóm trong khi các hàm khác yêu cầu giá trị được chỉ định làm đối số. Tìm các liên kết để biết thêm thông tin về các hàm trong mục Xem thêm.
- Xóa và nhập lại công thức của bạn để đảm bảo rằng công thức được nhập đúng.
Để kiểm tra các thay đổi của bạn, hãy bấm Xem trước trên thanh công cụ Chuẩn hoặc nhấn CTRL+SHIFT+B.