Funkcje Blank, Coalesce, IsBlank i IsEmpty

Dotyczy: Aplikacje oparte na kanwie Przepływy pulpitu Kolumny formuł Dataverse Aplikacje oparte na modelach Power Platform CLI

Sprawdzanie, czy wartość jest pusta lub czy tabela nie zawiera żadnych rekordów, a także udostępnianie sposobu tworzenia wartości pustych.

Omówienie

Puste jest symbolem zastępczym dla „brak wartości” lub „nieznana wartość”. Na przykład właściwość Combo box zaznaczona na Selected będzie pusta jeśli użytkownik nie dokonał wyboru. Wiele źródeł danych może przechowywać i zwracać wartości NULL, które w usłudze Power Apps są reprezentowane jako puste.

Każda właściwość lub wartość wyliczana w Power Apps może być pusta. Na przykład wartość logiczna zwykle ma jedną z dwóch wartości: prawda lub fałsz. Oprócz tych dwóch może być również pusta, wskazując, że stan jest nieznany. Jest to podobne do użycia w programie Microsoft Excel, w którym na początku komórka arkusza jest pusta, ale może zawierać wartości PRAWDA lub FAŁSZ (między innymi). W dowolnym momencie można ponownie usunąć zawartość komórki, co spowoduje przywrócenie stanu pustego.

Ciąg pusty oznacza ciąg, który nie zawiera żadnych znaków. Funkcja Len zwraca wartość zero w przypadku takiego ciągu i może zostać zapisana w formułach jako cudzysłów bez żadnych elementów – "". Niektóre kontrolki i źródła danych używają pustego ciągu, aby wskazać warunek "brak wartości". W celu uproszczenia tworzenia aplikacji należy testować funkcje IsBlank oraz Coalesce dla wartości puste lub pustych ciągów.

W kontekście funkcji IsEmpty pole Empty jest specyficzne dla tabel, które nie zawierają rekordów. Struktura tabeli może być nienaruszona, obejmować nazwy kolumn, ale sama tabela może nie zawierać żadnych danych. Na początku tabela może być pusta, następnie mogą do niej trafić rekordy i wówczas nie jest pusta, a później rekordy mogą zostać usunięte i tabela jest ponownie pusta.

Uwaga

Trwa okres przejścia. Do tego momentu notyfikacja puste była również używana do raportów o błędach, przez co nie jest możliwe wyróżnienie prawidłowej wartości "Brak" od błędu. Z tego też powodu, obecnie przechowywanie wartości pustych jest obsługiwane tylko w przypadku kolekcji lokalnych. Możesz przechowywać puste wartości w innych źródłach danych, jeśli włączysz Zarządzanie błędami na poziomie formuł eksperymentalną funkcję w Ustawienia>Nadchodzące funkcje>Eksperymentalne. Pracujemy nad tą funkcją i chcemy ostatecznie wprowadzić prawidłową separację pustych wartości i błędów.

Pusta

Dotyczy: aplikacje kanwy aplikacje oparte na modelu kolumny formuł Dataverse

Funkcja Blank zwraca wartość pustą. Za jej pomocą można zapisać wartość NULL w źródle danych, które obsługuje takie wartości, powodując rzeczywiste usunięcie innych wartości z odpowiedniego pola.

IsBlank

Dotyczy: aplikacje kanwy aplikacje oparte na modelu

Funkcja IsBlank sprawdza wartość pustą lub pusty ciąg. Test zawiera puste ciągi ułatwiające tworzenie aplikacji, ponieważ niektóre źródła danych i kontrolki korzystają z pustego ciągu, jeśli nie ma żadnej wartości. Aby testować w konkretnie w poszukiwaniu wartości puste użyj if( Value = Blank(), ... zamiast typu IsBlank. Funkcja IsBlank uwzględnia puste tabele jako niepuste i do przetestowania tabeli należy użyć funkcji IsEmpty.

Włączając obsługę błędów w istniejących aplikacjach, rozważ zastąpienie IsBlank z IsBlankOrError, aby zachować istniejące zachowanie aplikacji. Przed dodaniem obsługi błędów była używana pusta wartość reprezentująca zarówno wartości null z baz danych, jak i wartości błędów. Obsługa błędów rozdziela te dwa rodzaje pustych danych, co może zmienić zachowanie istniejących aplikacji, które nadal korzystają z aplikacji IsBlank.

Wartością zwracaną dla IsBlank jest wartość logiczna true lub false.

Coalesce

Dotyczy: aplikacje kanwy aplikacje oparte na modelu

Funkcja Coalesce ocenia kolejno swoje argumenty i zwraca pierwszą wartość, która nie jest pusta lub pusty ciąg. Tej funkcji należy użyć do zastąpienia pustej wartości lub pustego ciągu innym ciągiem, ale pozostawienia niepustych i wypełnionych wartości ciągów bez zmian. Jeśli wszystkie argumenty są puste lub puste, funkcja zwraca wartość pustą, dzięki czemu Coalesce pustych ciągów na puste wartości jest dobrym sposobem na konwersję pustych ciągów.

Coalesce( value1, value2 ) to bardziej zwarty odpowiednik If( Not IsBlank( value1 ), value1, Not IsBlank( value2 ), value2 ), który nie wymaga dwukrotnej oceny wartości1 ani wartości2. Funkcja If zwraca wartość pusta, jeśli w tym miejscu nie występuje formuła "else".

Wszystkie argumenty funkcji Coalesce muszą być tego samego typu; na przykład nie można mieszać liczb z ciągami tekstowymi. Wartość zwracana przez Coalesce jest tego wspólnego typu.

IsEmpty

Dotyczy: aplikacje kanwy aplikacje oparte na modelu

Funkcja IsEmpty sprawdza, czy tabela zawiera jakiekolwiek rekordy. Jest równoważna użyciu funkcji CountRows i sprawdzeniu pod kątem wartości zero. Łącząc funkcję IsEmpty z funkcją Errors, można sprawdzić źródło danych pod kątem błędów.

Wartością zwracaną dla IsEmpty jest wartość logiczna true lub false.

Składnia

Blank()

Coalesce( Wartość1 [, Wartość2, ... ] )

  • Wartości – wymagane. Wartości do testowania. Każda wartość jest oceniana w kolejności, do momentu, gdy nie jest pusta i nie zawiera pustego ciągu. Wartości po tym punkcie nie są oceniane.

IsBlank( Wartość )

  • Wartość – wymagane. Wartość, która ma zostać przetestowana w poszukiwaniu wartości puste lub pustego ciągu.

IsEmpty( Tabela )

  • Tabela – wymagane. Tabela, w której testowane będą rekordy.

Przykłady

Pusta

Uwaga

W tym przypadku poniższy przykład działa tylko dla kolekcji lokalnych. Możesz przechowywać puste wartości w innych źródłach danych, jeśli włączysz Zarządzanie błędami na poziomie formuł eksperymentalną funkcję w Ustawienia>Nadchodzące funkcje>Eksperymentalne. Pracujemy nad tą funkcją i chcemy ostatecznie wprowadzić prawidłową separację pustych wartości i błędów.

  1. Utwórz aplikację od początku i dodaj kontrolkę Button.

  2. Dla właściwości OnSelect przycisku ustaw następującą formułę:

    ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )
    
  3. Wyświetl podgląd aplikacji, kliknij lub naciśnij przycisk, który został dodany, a następnie zamknij podgląd.

  4. W menu Plik kliknij lub naciśnij pozycję Kolekcje.

    Widoczna będzie kolekcja Cities przedstawiająca jeden rekord z wartościami „Seattle” i „Rainy”:

    Kolekcja przedstawiająca Seattle z polem Weather zawierającym wartość Rainy.

  5. Kliknij lub naciśnij strzałkę wstecz, aby wrócić do domyślnego obszaru roboczego.

  6. Dodaj kontrolkę Label i ustaw jej właściwość Text na następującą formułę:

    IsBlank( First( Cities ).Weather )
    

    Ta etykieta przedstawia wartość fałsz, ponieważ pole Weather zawiera wartość („Rainy”).

  7. Dodaj drugi przycisk i ustaw dla jego właściwości OnSelect następującą formułę:

    Patch( Cities, First( Cities ), { Weather: Blank() } )
    
  8. Wyświetl podgląd aplikacji, kliknij lub naciśnij przycisk, który został dodany, a następnie zamknij podgląd.

    Pole Weather pierwszego rekordu w kolekcji Cities zostanie zastąpione polem pustym, co spowoduje usunięcie wartości „Rainy”, która znajdowała się tam wcześniej.

    Kolekcja przedstawiająca Seattle z pustym polem Weather.

    Etykieta przedstawia wartość prawda, ponieważ pole Weather nie zawiera żadnej wartości.

Coalesce

Wzór Opis Wynik
Coalesce( Blank(), 1 ) Testuje wartość zwracaną przez funkcję Blank, która zawsze zwraca wartość pustą. Ponieważ pierwszy argument jest pusty, szacowanie obejmuje następny argument aż do znalezienia wartości innej niż pusta, do odnalezienia niepustego ciągu. 1
Coalesce( "", "2" ) Sprawdza pierwszy argument, który jest ciągiem pustym. Ponieważ pierwszy argument jest pustym ciągiem, szacowanie obejmuje następny argument aż do znalezienia wartości innej niż pusta, do odnalezienia niepustego ciągu. 2
Coalesce( Blank(), "", Blank(), "", "3", "4" ) Funkcja Coalesce zaczyna działanie od początku tej listy argumentów i ocenia każdy argument kolejno aż do znalezienia wartości innej niż pusta i odnalezienia niepustego ciągu. W tym przypadku pierwsze cztery argumenty zwracają wartość pustą lub pusty ciąg, dlatego ocena jest kontynuowana do piątego argumentu. Piąty argument nie jest pusty i nie jest pustym ciągiem, więc ocena jest zatrzymywana. Zwracana jest wartość piątego argumentu, a szósty argument nie jest poddawany ocenie. 3
Coalesce( "" ) Sprawdza pierwszy argument, który jest ciągiem pustym. Ponieważ pierwszy argument jest pustym ciągiem i nie istnieją żadne argumenty, funkcja zwraca wartość pustą. puste

IsBlank

  1. Utwórz aplikację od początku, dodaj kontrolkę do wprowadzania tekstu i nadaj jej nazwę FirstName.

  2. Dodaj etykietę i ustaw jej właściwość Text na tę formułę:

    If( IsBlank( FirstName.Text ), "First Name is a required field." )
    

    Domyślnie właściwość Text kontrolki przeznaczonej do wprowadzania tekstu jest ustawiona na "Text input". Ponieważ ta właściwość zawiera wartość, nie jest pusta i w etykiecie nie jest wyświetlany żaden komunikat.

  3. Usuń wszystkie znaki z kontrolki przeznaczonej do wprowadzania tekstu, w tym spacje.

    Właściwość Text nie zawiera już żadnych znaków, dlatego jest pustym ciągiem, a funkcja IsBlank( FirstName.Text ) będzie miała wartość prawda. Zostanie wyświetlony komunikat z informacją o polu wymaganym.

Aby uzyskać informacje o sposobie weryfikacji przy użyciu innych narzędzi, zapoznaj się z opisem funkcji Validate i tematem Working with data sources (Praca ze źródłami danych).

Inne przykłady:

Wzór Opis Wynik
IsBlank( Blank() ) Testuje wartość zwracaną przez funkcję Blank, która zawsze zwraca wartość pustą. true
IsBlank( "" ) Ciąg, który nie zawiera żadnych znaków. true
IsBlank( "Hello" ) Ciąg, który zawiera co najmniej jeden znak. false
IsBlank( AnyCollection ) Ponieważ kolekcja istnieje, nie jest pusta, nawet jeśli nie zawiera żadnych rekordów. Aby sprawdzić, czy kolekcja jest pusta, użyj funkcji IsEmpty. false
IsBlank( Mid( "Hello", 17, 2 ) ) Początkowy znak dla funkcji Mid znajduje się za końcem ciągu. Wynikiem jest pusty ciąg. true
IsBlank( If( false, false ) ) Funkcja If bez ElseResult. Ponieważ warunek jest zawsze fałszywy, ta funkcja If zawsze zwraca wartość pustą. true

IsEmpty

  1. Utwórz aplikację od początku i dodaj kontrolkę Button.

  2. Dla właściwości OnSelect przycisku ustaw następującą formułę:

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

  3. Wyświetl podgląd aplikacji, kliknij lub naciśnij przycisk, który został dodany, a następnie zamknij podgląd.

    Utworzona została kolekcja o nazwie IceCream, która zawiera następujące dane:

    Tabela zawierająca smaki truskawkowy i czekoladowy w ilościach 300 i 100.

    Ta kolekcja zawiera dwa rekordy i nie jest pusta. IsEmpty( IceCream ) zwraca fałsz, a CountRows( IceCream ) zwraca 2.

  4. Dodaj drugi przycisk i ustaw dla jego właściwości OnSelect następującą formułę:

    Clear( IceCream )

  5. Wyświetl podgląd aplikacji, kliknij lub naciśnij drugi przycisk, a następnie zamknij podgląd.

    Kolekcja jest obecnie pusta:

    Kolekcja zawierająca Smak i Ilość jako pusta kolekcja.

    Funkcja Clear usuwa wszystkie rekordy z kolekcji i pozostawia pustą kolekcję. IsEmpty( IceCream ) zwraca wartość prawda, a CountRows( IceCream ) zwraca wartość 0.

Za pomocą funkcji IsEmpty można sprawdzić, czy wyliczona tabela jest pusta w sposób przedstawiony w następujących przykładach:

Wzór Opis Wynik
IsEmpty( [ 1, 2, 3 ] ) Jednokolumnowa tabela zawiera trzy rekordy i dlatego nie jest pusta. false
IsEmpty( [ ] ) Jednokolumnowa tabela nie zawiera żadnych rekordów i jest pusta. prawda
IsEmpty( Filter( [ 1, 2, 3 ], Value > 5 ) ) Jednokolumnowa tabela nie zawiera żadnych wartości większych niż 5. Wynik funkcji Filter nie zawiera żadnych rekordów i jest pusty. true