Funkcje Blank, Coalesce, IsBlank i IsEmpty
Dotyczy: Aplikacje kanwy Przepływy Dataverse pulpitu Kolumny z formułami Aplikacje oparte na modelu Power Pages 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 pole jest symbolem zastępczym dla wartości "brak wartości" lub "nieznana wartość". Na przykład właściwość Wybrane kontrolki pola kombi jest 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.
Pusty ciąg odnosi się do ciągu, 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 Dataverse z formułami
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 )
jest bardziej zwięzłym odpowiednikiem If( Not IsBlank( value1 ), value1, Not IsBlank( value2 ), value2 )
i nie wymaga, aby wartości value1 i value2 były oceniane dwukrotnie. 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
Puste()
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.
Utwórz aplikację od początku i dodaj kontrolkę Button.
Dla właściwości OnSelect przycisku ustaw następującą formułę:
ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )
Wyświetl podgląd aplikacji, kliknij lub naciśnij przycisk, który został dodany, a następnie zamknij podgląd.
W menu Plik kliknij lub naciśnij pozycję Kolekcje.
Widoczna będzie kolekcja Cities przedstawiająca jeden rekord z wartościami „Seattle” i „Rainy”:
Kliknij lub naciśnij strzałkę wstecz, aby wrócić do domyślnego obszaru roboczego.
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”).
Dodaj drugi przycisk i ustaw dla jego właściwości OnSelect następującą formułę:
Patch( Cities, First( Cities ), { Weather: Blank() } )
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.
Etykieta przedstawia wartość prawda, ponieważ pole Weather nie zawiera żadnej wartości.
Coalesce
Wzór | Opis | Wynik |
---|---|---|
Koalescencja( Puste (), 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 |
Koalescencja( "", "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( Puste (), "", Puste (), "", ", "3", "4" ) | Coalesce rozpoczyna się na początku listy argumentów i ocenia każdy argument po kolei, aż zostanie znaleziona wartość niepusta i ciąg niepusty. 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 |
Koalescencja( "" ) | 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ą. | pusty |
IsBlank
Utwórz aplikację od początku, dodaj kontrolkę do wprowadzania tekstu i nadaj jej nazwę FirstName.
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.
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( Puste() ) | Testuje wartość zwracaną przez funkcję Blank, która zawsze zwraca wartość pustą. | prawdziwy |
IsBlank( "" ) | Ciąg, który nie zawiera żadnych znaków. | prawdziwy |
IsBlank( "Witaj" ) | Ciąg, który zawiera co najmniej jeden znak. | fałszywy |
IsBlank( Dowolna Kolekcja ) | Ponieważ kolekcja istnieje, nie jest pusta, nawet jeśli nie zawiera żadnych rekordów. Aby sprawdzić, czy kolekcja jest pusta, użyj funkcji IsEmpty. | fałszywy |
IsBlank( Mid( "Cześć"; 17, 2 ) ) | Początkowy znak dla funkcji Mid znajduje się za końcem ciągu. Wynikiem jest pusty ciąg. | prawdziwy |
IsBlank( If( false, false ) ) | Funkcja If bez ElseResult. Ponieważ warunek jest zawsze fałszywy, ta funkcja If zawsze zwraca wartość pustą. | prawdziwy |
IsEmpty
Utwórz aplikację od początku i dodaj kontrolkę Button.
Dla właściwości OnSelect przycisku ustaw następującą formułę:
Collect( Lody,Smak: { "Truskawka", Ilość: 300,Smak } { : "Czekolada", Ilość: 100 } )
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:
Ta kolekcja zawiera dwa rekordy i nie jest pusta. IsEmpty( IceCream ) zwraca wartość false, aCountRows( IceCream ) zwraca wartość 2.
Dodaj drugi przycisk i ustaw dla jego właściwości OnSelect następującą formułę:
Jasny( Lody )
Wyświetl podgląd aplikacji, kliknij lub naciśnij drugi przycisk, a następnie zamknij podgląd.
Kolekcja jest obecnie pusta:
Funkcja Clear usuwa wszystkie rekordy z kolekcji i pozostawia pustą kolekcję. IsEmpty( IceCream ) zwraca wartość true , aCountRows( 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. | fałszywy |
IsEmpty( [ ] ) | Jednokolumnowa tabela nie zawiera żadnych rekordów i jest pusta. | prawdziwy |
IsEmpty( Filter( [ 1, 2, 3 ], Wartość > 5 ) ) | Jednokolumnowa tabela nie zawiera żadnych wartości większych niż 5. Wynik funkcji Filter nie zawiera żadnych rekordów i jest pusty. | prawdziwy |