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 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ỗ dành sẵn cho "no value" hoặc "unknown value". Ví dụ: thuộc tính Đã chọn của nút điều khiển Hộp tổ hợpblank nếu người dùng chưa 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.

Empty string (chuỗi trống) là chuỗi không chứa ký tự. 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 IsBlankCoalesce 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 là không trống và nên sử dụng IsEmpty để 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 đánh giá 2 lần value1value2. 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

Blank()

Coalesce( Value1 [, Value2, ... ] )

  • Value(s) – 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( Value )

  • Value – Bắt buộc. Giá trị để kiểm tra giá trị blank hoặc chuỗi trống.

IsEmpty( Table )

  • Table – 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.

  1. Tạo ứng dụng từ đầu và thêm công cụ điều khiển Button (Nút).

  2. Đặt thuộc tính OnSelect của nút thành công thức sau:

    ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )
    
  3. 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.

  4. 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":

    Bộ sưu tập cho thấy thời tiết Rainy (Mưa) tại Seattle.

  5. 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.

  6. 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").

  7. 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() } )
    
  8. 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 đó.

    Bộ sưu tập cho thấy Seattle với trường Thời tiết trống.

    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ả
Coalesce( 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
Coalesce( "", "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
Coalesce( Blank(), "", Blank(), "", "3", "4" ) Hàm Coalesce bắt đầu ở đầu danh sách đối số và lần lượt đánh giá từng đối số cho đến khi tìm được giá trị không phải blank và chuỗi không trố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
Coalesce( "" ) 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. blank

IsBlank

  1. 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.

  2. 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.

  3. 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( Blank() ) Kiểm tra giá trị trả về của hàm Blank (luôn trả về giá trị blank). true
IsBlank( "" ) Một chuỗi không chứa ký tự. true
IsBlank( "Hello" ) Một chuỗi chứa 1 hoặc nhiều ký tự. false
IsBlank( AnyCollection ) 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. false
IsBlank( Mid( "Hello", 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. true
IsBlank( If( false, false ) ) 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. true

IsEmpty

  1. Tạo ứng dụng từ đầu và thêm công cụ điều khiển Button (Nút).

  2. Đặt thuộc tính OnSelect của nút thành công thức sau:

    Collect( IceCream, { Flavor: "Strawberry", Quantity: 300 }, { Flavor: "Chocolate", Quantity: 100 } )

  3. 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:

    Một bảng có vị Dâu và Socola với số lượng là 300 và 100.

    Bộ sưu tập này không trống do có 2 bản ghi. Hàm IsEmpty( IceCream ) trả về false và hàm CountRows( IceCream ) trả về 2.

  4. 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:

    Clear( IceCream )

  5. 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:

    Một bộ sưu tập với Hương vị và Số lượng là bộ sưu tập 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. Hàm IsEmpty( IceCream ) trả về true và hàm 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ả
IsEmpty( [ 1, 2, 3 ] ) Bảng một cột không trống do chứa 3 bản ghi. false
IsEmpty( [ ] ) Bảng một cột trống do không chứa bản ghi nào. true
IsEmpty( Filter( [ 1, 2, 3 ], Value > 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. true