Các hàm Blank, Coalesce, IsBlank và IsEmpty
Áp dụng cho: Ứng dụng Canvas Luồng máy tính để bàn Dataverse cột công thức Ứng dụng dựa trên mô hình Power Pages Power Platform CLI
Kiểm tra xem có phải một giá trị rỗng hoặc một bảng không chứa bản ghi phải không và chỉ ra cách tạo giá trị blank (rỗng).
Tổng quan
Blank là chỗ giữ chỗ cho "không có giá trị" hoặc "giá trị không xác định". Ví dụ, thuộc tính Selected của điều khiển Hộp kết hợp sẽ là trống nếu người dùng chưa thực hiện lựa chọn. Nhiều nguồn dữ liệu có thể lưu trữ và trả về các giá trị NULL, biểu thị bằng giá trị blank trong Power Apps.
Bất kỳ thuộc tính hoặc giá trị được tính toán nào trong Power Apps đều có thể là blank. Ví dụ: giá trị Boolean thường có 1 trong 2 giá trị: true hoặc false. Tuy nhiên, ngoài hai giá trị này, giá trị Boolean cũng có thể là blank (trạng thái không xác định). Điều này tương tự như Microsoft Excel, trong đó một ô bảng tính ban đầu rỗng, không có nội dung nhưng có thể chứa các giá trị TRUE hoặc FALSE (cùng với các giá trị khác). Nội dung của ô lại có thể bị xóa bất cứ lúc nào, trở về trạng thái blank.
Chuỗi rỗng là chuỗi không chứa ký tự nào. Hàm Len trả về 0 cho một chuỗi như vậy và có thể nằm trong công thức có hai dấu ngoặc kép đi liền nhau ""
. Một số công cụ điều khiển và nguồn dữ liệu sử dụng chuỗi trống để biểu thị tình trạng "không có giá trị". Để đơn giản hóa việc tạo ứng dụng, hàm IsBlank và Coalesce kiểm tra cả hai giá trị blank hoặc chuỗi rỗng.
Trong hàm IsEmpty, giá trị empty dành cho các bảng không chứa bản ghi. Cấu trúc bảng có thể còn nguyên vẹn, hoàn chỉnh với tên cột, nhưng không có dữ liệu trong bảng. Ban đầu, một bảng có thể trống, sau đó có các bản ghi và không còn trống nữa. Tuy nhiên, về sau các bản ghi có thể bị xóa và bảng lại trống.
Lưu ý
Chúng ta đang trong thời kỳ chuyển đổi. Cho đến bây giờ, giá trị blank cũng đã được sử dụng để báo cáo lỗi, nên không thể phân biệt trường hợp "không có giá trị" hợp lệ với lỗi. Vì lý do này, chúng tôi hiện chỉ hỗ trợ lưu trữ các giá trị blank cho các bộ sưu tập cục bộ. Bạn có thể lưu trữ giá trị trống trong các nguồn dữ liệu khác nếu bật tính năng thử nghiệm Quản lý lỗi cấp công thức trong phần Thiết đặt>Các tính năng sắp ra mắt>Thử nghiệm. Chúng tôi đang tích cực nỗ lực để hoàn thiện tính năng này và hoàn thành việc tách biệt hợp lý các giá trị blank với lỗi.
Trống
Áp dụng cho: Ứng dụng Canvas Ứng dụng dựa trên mô hình Dataverse cột công thức
Hàm Blank trả về giá trị blank. Sử dụng hàm này để lưu trữ giá trị NULL trong nguồn dữ liệu hỗ trợ các giá trị này, loại bỏ bất kỳ giá trị nào khỏi trường một cách hiệu quả.
IsBlank
Áp dụng cho: Ứng dụng Canvas Ứng dụng dựa trên mô hình
Hàm IsBlank kiểm tra giá trị blank hoặc một chuỗi trống. Hàm sẽ kiểm tra các chuỗi trống để dễ dàng tạo ứng dụng do một số nguồn dữ liệu và công cụ điều khiển sử dụng chuỗi trống khi không có giá trị. Để kiểm tra cụ thể một giá trị blank, hãy sử dụng hàm if( Value = Blank(), ...
thay vì hàm IsBlank. Hàm IsBlank coi các bảng trống không phải là bảng trống và IsEmpty nên được sử dụng để kiểm tra một bảng.
Khi bật xử lý lỗi cho các ứng dụng hiện có, hãy cân nhắc việc thay thế IsBlank bằng IsBlankOrError để duy trì hành vi ứng dụng hiện có. Trước khi bổ sung tính năng xử lý lỗi, một giá trị trống đã được sử dụng để đại diện cho cả giá trị null từ cơ sở dữ liệu và giá trị lỗi. Tính năng xử lý lỗi sẽ phân tách hai cách diễn giải này về giá trị trống có thể thay đổi hành vi của các ứng dụng hiện có đang tiếp tục sử dụng IsBlank.
Hàm trả về giá trị boolean true hoặc false cho IsBlank.
Coalesce
Áp dụng cho: Ứng dụng Canvas Ứng dụng dựa trên mô hình
Hàm Coalesce đánh giá các đối số theo thứ tự và trả về giá trị đầu tiên không phải là blank hoặc một chuỗi trống. Sử dụng hàm này để thay thế giá trị blank hoặc chuỗi trống bằng một giá trị khác, không thay đổi các giá trị chuỗi không trống hoặc không phải blank. Nếu tất cả các đối số là blank hoặc chuỗi trống thì hàm trả về blank, khiến cho Coalesce trở thành một cách hiệu quả để chuyển đổi các chuỗi trống thành giá trị blank.
Coalesce( value1, value2 )
là dạng tương đương ngắn gọn hơn của If( Not IsBlank( value1 ), value1, Not IsBlank( value2 ), value2 )
và không yêu cầu giá trị1 và giá trị2 phải được đánh giá hai lần. Hàm If trả về blank nếu không có công thức "else" như trường hợp này.
Tất cả các đối số trong hàm Coalesce phải cùng loại; ví dụ: bạn không thể dùng cả số và chuỗi văn bản. Giá trị trả về từ Coalesce thuộc loại phổ biến này.
IsEmpty
Áp dụng cho: Ứng dụng Canvas Ứng dụng dựa trên mô hình
Hàm IsEmpty kiểm tra xem một bảng có chứa bất kỳ bản ghi nào không. Hàm này tương đương với việc sử dụng hàm CountRows và kiểm tra trường hợp bảng không chứa bản ghi nào. Bạn có thể kết hợp hàm IsEmpty với hàm Errors để kiểm tra xem nguồn dữ liệu có lỗi hay không.
Hàm trả về giá trị boolean true hoặc false cho IsEmpty.
Cú pháp
Trống()
Hợp nhất( Value1 [, Value2, ... ] )
- Giá trị – Bắt buộc. Giá trị cần kiểm tra. Hàm đánh giá mỗi giá trị theo thứ tự cho đến khi tìm được giá trị không phải blank và chuỗi không trống. Sao đó, hàm sẽ không đánh giá các giá trị nữa.
IsBlank( Giá trị )
- Giá trị – Bắt buộc. Giá trị để kiểm tra giá trị blank hoặc chuỗi trống.
IsEmpty( Bảng )
- Bảng - Bắt buộc. Bảng để kiểm tra bản ghi.
Ví dụ
Trống
Lưu ý
Các ví dụ sau hiện chỉ áp dụng cho các bộ sưu tập cục bộ. Bạn có thể lưu trữ giá trị trống trong các nguồn dữ liệu khác nếu bật tính năng thử nghiệm Quản lý lỗi cấp công thức trong phần Thiết đặt>Các tính năng sắp ra mắt>Thử nghiệm. Chúng tôi đang tích cực nỗ lực để hoàn thiện tính năng này và hoàn thành việc tách biệt các giá trị blank với lỗi.
Tạo ứng dụng từ đầu và thêm công cụ điều khiển Button (Nút).
Đặt thuộc tính OnSelect của nút thành công thức sau:
ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )
Xem trước ứng dụng, bấm hoặc nhấn vào nút mà bạn đã thêm rồi đóng Bản xem trước.
Trên menu File (Tệp), bấm hoặc nhấn vào Collections (Bộ sưu tập).
Bộ sưu tập Cities (Thành phố) xuất hiện, hiển thị một bản ghi có "Seattle" và "Rainy":
Nhấp hoặc nhấn vào mũi tên quay lại để trở về không gian làm việc mặc định.
Chèn công cụ điều khiển Label và đặt thuộc tính Văn bản thành công thức sau:
IsBlank( First( Cities ).Weather )
Nhãn có giá trị false vì trường Weather chứa giá trị ("Rainy").
Thêm nút thứ hai rồi đặt thuộc tính OnSelect của nút này thành công thức sau:
Patch( Cities, First( Cities ), { Weather: Blank() } )
Xem trước ứng dụng, bấm hoặc nhấn vào nút mà bạn đã thêm rồi đóng Bản xem trước.
Trường Weather của bản ghi đầu tiên trong Cities được thay thế bằng giá trị blank, loại bỏ giá trị "Rainy" trước đó.
Nhãn có giá trị true vì trường Weather không chứa giá trị nào nữa.
Coalesce
Công thức | Mô tả | Kết quả |
---|---|---|
Hợp nhất( Blank(), 1) | Kiểm tra giá trị trả về của hàm Blank (luôn trả về giá trị blank). Bởi vì đối số đầu tiên là blank, nên hàm tiếp tục đánh giá đối số tiếp theo cho đến khi tìm được giá trị không phải blank và chuỗi không trống. | 1 |
Hợp nhất( "", "2") | Kiểm tra đối số đầu tiên là một chuỗi trống. Bởi vì đối số đầu tiên là chuỗi trống, nên hàm tiếp tục đánh giá đối số tiếp theo cho đến khi tìm được giá trị không phải blank và chuỗi không trống. | 2 |
Hợp nhất( Blank(), "", Blank(), "", "3", "4") | Coalesce bắt đầu từ đầu danh sách đối số và đánh giá từng đối số theo lượt cho đến khi tìm thấy một giá trị không phải trống và chuỗi không rỗng. Trong trường hợp này, 4 đối số đầu tiên đều trả về giá trị blank hoặc một chuỗi trống, nên hàm tiếp tục đánh giá đối số thứ 5. Đối số thứ 5 là không phải là giá trị blank và là chuỗi không trống, vì vậy hàm dừng đánh giá tại đây. Hàm trả về giá trị của đối số thứ 5 và không đánh giá đối số thứ 6. | 3 |
Hợp nhất( "") | Kiểm tra đối số đầu tiên là một chuỗi trống. Vì đối số đầu tiên là một chuỗi trống và không còn đối số nào nữa, nên hàm trả về blank. | trống |
IsBlank
Tạo ứng dụng từ đầu, thêm công cụ điều khiển nhập văn bản và đặt tên là FirstName.
Thêm nhãn rồi đặt thuộc tính Văn bản theo công thức sau:
If( IsBlank( FirstName.Text ), "First Name is a required field." )
Theo mặc định, thuộc tính Văn bản của công cụ điều khiển nhập văn bản được đặt thành "Text input". Bởi vì thuộc tính chứa một giá trị, nên thuộc tính này không trống và nhãn không hiển thị bất kỳ thông báo nào.
Xóa tất cả các ký tự khỏi công cụ điều khiển nhập văn bản, bao gồm mọi khoảng trắng.
Vì thuộc tính Văn bản không còn chứa bất kỳ ký tự nào, nên đây là một chuỗi trống và IsBlank( FirstName.Text ) sẽ là true. Thông báo về trường bắt buộc hiển thị.
Để biết thông tin về cách xác nhận bằng các công cụ khác, hãy xem hàm Validate và cách thao tác với các nguồn dữ liệu.
Ví dụ khác:
Công thức | Mô tả | Kết quả |
---|---|---|
IsBlank( Trống() ) | Kiểm tra giá trị trả về của hàm Blank (luôn trả về giá trị blank). | ĐÚNG VẬY |
Trống( "") | Một chuỗi không chứa ký tự. | ĐÚNG VẬY |
IsBlank( "Xin chào") | Một chuỗi chứa 1 hoặc nhiều ký tự. | SAI |
IsBlank( AnyCollection ) | Vì bộ sưu tập tồn tại, nên bộ sưu tập này không rỗng, ngay cả khi không chứa bất kỳ bản ghi nào. Để kiểm tra bộ sưu tập trống, hãy sử dụng hàm IsEmpty. | SAI |
IsBlank( Mid( "Xin chào", 17, 2 ) ) | Ký tự đầu tiên của hàm Mid nằm ngoài phần cuối của chuỗi. Hàm sẽ trả về chuỗi trống. | ĐÚNG VẬY |
IsBlank( Nếu( sai, sai ) ) | Hàm If không có ElseResult. Vì điều kiện luôn là false, nên hàm If luôn trả về blank. | ĐÚNG VẬY |
IsEmpty
Tạo ứng dụng từ đầu và thêm công cụ điều khiển Button (Nút).
Đặt thuộc tính OnSelect của nút thành công thức sau:
Thu thập (Kem, { Hương vị: "Dâu tây", Số lượng: 300 }, { Hương vị: "Sô cô la", Số lượng: 100 } )
Xem trước ứng dụng, bấm hoặc nhấn vào nút mà bạn đã thêm rồi đóng Bản xem trước.
Một bộ sưu tập có tên IceCream được tạo và chứa dữ liệu sau:
Bộ sưu tập này không trống do có 2 bản ghi. IsEmpty( IceCream ) trả về false và CountRows( IceCream ) trả về 2.
Thêm nút thứ hai rồi đặt thuộc tính OnSelect của nút này thành công thức sau:
Trong suốt (Kem)
Xem trước ứng dụng, bấm hoặc nhấn vào nút thứ hai mà bạn đã thêm rồi đóng Bản xem trước.
Lúc này, bộ sưu tập sẽ trống:
Hàm Clear xóa tất cả các bản ghi khỏi bộ sưu tập, dẫn đến một bộ sưu tập trống. IsEmpty( IceCream ) trả về true và CountRows( IceCream ) trả về 0.
Bạn cũng có thể dùng hàm IsEmpty để kiểm tra xem một bảng có trống hay không, như trong các ví dụ sau đây:
Công thức | Mô tả | Kết quả |
---|---|---|
Trống rỗng( [ 1, 2, 3 ] ) | Bảng một cột không trống do chứa 3 bản ghi. | SAI |
Trống rỗng([ ] ) | Bảng một cột trống do không chứa bản ghi nào. | ĐÚNG VẬY |
IsEmpty( Bộ lọc( [ 1, 2, 3 ], Giá trị > 5 ) ) | Bảng một cột không chứa giá trị nào lớn hơn 5. Hàm lọc trả về kết quả trống do không chứa bản ghi nào. | ĐÚNG VẬY |