Lưu ý
Cần có ủy quyền mới truy nhập được vào trang này. Bạn có thể thử đăng nhập hoặc thay đổi thư mục.
Cần có ủy quyền mới truy nhập được vào trang này. Bạn có thể thử thay đổi thư mục.
Áp dụng cho: Ứng dụng Canvas Copilot Studio Desktop
flows
Dataverse formula
columns Các ứng dụng dựa trên mô hình
Power Platform CLI
Dataverse functions
Power Pages
Xác định xem bất kỳ điều kiện nào trong một tập hợp là đúng (If) hay kết quả của một công thức khớp với bất kỳ giá trị nào trong một tập hợp (Switch) và sau đó trả về kết quả hoặc thực thi một hành động.
Mô tả
Hàm kiểm If tra một hoặc nhiều điều kiện cho đến khi tìm thấy kết quả đúng. If kết quả như vậy được tìm thấy, một giá trị tương ứng được trả về. If không tìm thấy kết quả như vậy, một giá trị mặc định được trả về. Trong cả hai trường hợp, giá trị được trả về có thể là một chuỗi sẽ hiển thị, một công thức sẽ đánh giá hoặc một dạng kết quả khác.
Hàm Switch đánh giá một công thức và xác định kết quả có khớp với bất kỳ giá trị nào theo trình tự mà bạn chỉ định hay không. If tìm thấy một kết quả khớp, một giá trị tương ứng được trả về. If không tìm thấy kết quả khớp, một giá trị mặc định được trả về. Trong cả hai trường hợp, giá trị được trả về có thể là một chuỗi sẽ hiển thị, một công thức sẽ đánh giá hoặc một dạng kết quả khác.
If và Switch rất giống nhau, nhưng bạn nên sử dụng chức năng tốt nhất cho tình huống của bạn:
- Dùng để If đánh giá một điều kiện duy nhất. Cú pháp phổ biến nhất cho hàm này là If( Condition, ThenResult, DefaultResult ), cung cấp thông thường "nếu ... thì … Mẫu "else…" được thấy trong các công cụ lập trình khác.
- Dùng để If đánh giá nhiều điều kiện không liên quan. Trong Power Apps (không giống như Microsoft Excel), bạn có thể chỉ định nhiều điều kiện mà không cần phải lồng If công thức.
- Dùng để Switch đánh giá một điều kiện so với nhiều kết quả trùng khớp có thể xảy ra. Bạn cũng có thể sử If dụng trong trường hợp này, nhưng bạn cần lặp lại công thức cho từng kết quả khớp có thể xảy ra.
Bạn có thể sử dụng cả hai hàm này trong công thức hành vi để phân nhánh giữa hai hoặc nhiều hành động. Chỉ một nhánh sẽ kích hoạt hành động. Hàm đánh giá các điều kiện và giá trị khớp theo thứ tự và dừng đánh giá nếu một điều kiện là true hoặc tìm thấy một giá trị khớp.
Trả về giá trị trống nếu không có điều kiện nào là đúng, không tìm thấy kết quả khớp và bạn không chỉ định kết quả mặc định.
Cú pháp
If( Condition, ThenResult [, DefaultResult ] )
If( Condition1, ThenResult1 [, Condition2, ThenResult2, ... [ , DefaultResult ] ] )
- Điều kiện - Bắt buộc. Công thức để kiểm tra xem giá trị nào là true. Các công thức này thường chứa toán tử so sánh (chẳng hạn như <, > và =) và các hàm kiểm tra như IsBlank và IsEmpty.
- ThenResults - Bắt buộc. Giá trị tương ứng sẽ trả về cho một điều kiện được đánh giá là true.
- DefaultResult - Tùy chọn. Giá trị trả về nếu không có điều kiện nào được đánh giá là true. If bạn không xác định đối số này, trả về giá trị trống.
Switch( Công thức, Khớp 1, Kết quả1 [, Khớp2, Kết quả 2, ... [, DefaultResult ] ] )
- Công thức - Bắt buộc. Công thức để đánh giá xem giá trị nào khớp. Công thức này chỉ được đánh giá một lần.
- Các trận đấu - Bắt buộc. Giá trị để so sánh với kết quả từ Formula (Công thức). If một kết quả khớp chính xác được tìm thấy, Kết quả tương ứng được trả về.
- Kết quả - Bắt buộc. Giá trị tương ứng sẽ trả về khi tìm thấy kết quả khớp chính xác.
- DefaultResult - Tùy chọn. If không tìm thấy kết quả khớp chính xác, giá trị này được trả về. If bạn không xác định đối số này, trả về giá trị trống.
Ví dụ
Giá trị trong công thức
Trong các ví dụ sau, công cụ điều khiển Slider (có tên Slider1) có giá trị là 25.
| Công thức | Mô tả | Kết quả |
|---|---|---|
| If( Thanh trượt1.Giá trị = 25, "Kết quả1" ) | Điều kiện là true và hàm trả về kết quả tương ứng. | "Result1" |
| If( Thanh trượt1.Giá trị = 25, "Kết quả1", "Kết quả2" ) | Điều kiện là true và hàm trả về kết quả tương ứng. | "Result1" |
| If( Thanh trượt1.Giá trị > 1000, "Kết quả1" ) | Điều kiện là false và không có DefaultResult. | trống |
| If( Thanh trượt1.Giá trị > 1000, "Kết quả1", "Kết quả2" ) | Điều kiện là false và hàm trả về DefaultResult mà bạn cung cấp. | "Result2" |
| If( Thanh trượt1.Giá trị = 25, "Kết quả1", Con trượt1.Giá > trị 0, "Kết quả2" ) | Điều kiện đầu tiên là true và hàm trả về kết quả tương ứng. Điều kiện thứ hai cũng là true nhưng hàm không đánh giá điều kiện này vì đối số này xuất hiện sau đối số đầu tiên đã được đánh giá là true. | "Result1" |
| If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) | Điều kiện đầu tiên là false bởi vì thanh trượt không phải là blank. Điều kiện thứ hai là true bởi vì giá trị của thanh trượt là một số và hàm trả về kết quả tương ứng. | "Result2" |
| If( Thanh trượt1.Giá trị > 1000, "Kết quả_1", Con trượt1.Giá > trị 50, "Kết_quả_2", "Kết_quả_3") | Cả điều kiện đầu tiên và thứ hai đều là false và hàm trả về DefaultResult mà bạn cung cấp. | "Result3" |
| Switch( Thanh trượt1.Giá trị, 25, "Kết quả1" ) | Giá trị của thanh trượt khớp với giá trị đầu tiên được kiểm tra và hàm trả về kết quả tương ứng. | "Result1" |
| Switch( Thanh trượt1.Giá trị, 20, "Kết quả1", 25, "Kết quả2", 30, "Kết quả3" ) | Giá trị của thanh trượt khớp với giá trị thứ 2 được kiểm tra và hàm trả về kết quả tương ứng. | "Result2" |
| Switch( Thanh trượt1.Giá trị, 20, "Kết quả1", 10, "Kết quả2", 0, "Kết quả3", "DefaultResult" ) | Giá trị của thanh trượt không khớp với bất kỳ giá trị nào cần kiểm tra. Bạn có cung cấp DefaultResult nên hàm sẽ trả về giá trị này. | "DefaultResult" |
Phân nhánh trong công thức hành vi
Trong những ví dụ này, công cụ điều khiển Nội dung nhập văn bản có tên FirstName (Tên) có giá trị nhập vào là "John".
| Công thức | Mô tả | Kết quả |
|---|---|---|
| If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) | Điều kiện là true, nên hàm Navigate sẽ chạy. Bạn có thể dùng hàm IsBlank để kiểm tra xem một trường mẫu bắt buộc đã được điền chưa. If FirstName đãtrống, công thức này sẽ không có tác dụng. |
ĐÚNG VẬY Màn hình thay đổi thành Screen1. |
| If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) | Không có toán tử !, điều kiện là false, nên hàm Navigate không chạy. Hàm Back được cung cấp làm DefaultResult, nên hàm này sẽ chạy. |
ĐÚNG VẬY Màn hình quay trở lại màn hình đã hiển thị trước đó. |
| Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) | Giá trị của FirstName.Text được so sánh với "Carlos", "Kirstin" và "John" theo thứ tự đó. Nếu hàm tìm thấy giá trị khớp với "John", ứng dụng sẽ chuyển đến Screen3. |
ĐÚNG VẬY Màn hình thay đổi thành Screen3. |
Hướng dẫn chi tiết
Thêm công cụ điều khiển Nội dung nhập văn bản rồi đặt tên là Text1 nếu mặc định không có tên đó.
Trong Text1, hãy nhập 30.
Thêm tùy chọn Label rồi đặt thuộc tính Văn bản thành công thức sau:
If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )Điều khiển Nhãn hiển thị Đặt hàng thêm! vì giá trị của Text1 lớn hơn 20 nhưng nhỏ hơn 40.
Trong Text1, hãy nhập 15.
Điều khiển Nhãn hiển thị Đặt hàng NHIỀU thêm! vì giá trị của Text1 nhỏ hơn 20.
Trong Text1, hãy nhập 50.
Công cụ điều khiển Label hiển thị giá trị mà bạn đã nhập giá trị này lớn hơn 40.