Funkcja EndsWith i StartsWith

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

Testuje, czy ciąg tekstowy rozpoczyna się lub kończy innym ciągiem tekstowym.

Opis

Funkcja EndsWith sprawdza, czy dany ciąg tekstowy kończy się innym ciągiem tekstowym.

Funkcja StartsWith sprawdza, czy dany ciąg tekstowy rozpoczyna się innym ciągiem tekstowym.

W przypadku obu tych funkcji podczas sprawdzania nie jest rozróżniana wielkość liter. Wartością zwracaną obu funkcji jest wartość logiczna prawda lub fałsz.

Korzystając z funkcji EndsWith i StartsWith w połączeniu z funkcją Filter, możesz wyszukiwać dane w aplikacji. Możesz również użyć operatora in lub funkcji Search, aby wyszukiwać w dowolnym miejscu w ramach ciągów tekstowych, a nie tylko na początku lub na końcu. Wybór funkcji zależy od potrzeb aplikacji oraz tego, którą funkcję można delegować w przypadku danego źródła danych. Jeśli jednej z tych funkcji nie można delegować, podczas tworzenia będzie wyświetlane ostrzeżenie dotyczące delegowania informujące o tym ograniczeniu.

Składnia

EndsWith( Text, EndText )

  • Tekst - wymagany. Tekst do sprawdzenia.
  • EndText – wymagany. Tekst do wyszukania na końcu ciągu Tekst. Jeśli wartość EndText to ciąg pusty, funkcja EndsWith zwraca wartość prawda.

StartsWith( Text, StartText )

  • Tekst - wymagany. Tekst do sprawdzenia.
  • StartText – wymagany. Tekst do wyszukania na początku ciągu Tekst. Jeśli wartość StartText to ciąg pusty, funkcja StartsWith zwraca wartość prawda.

Przykłady

Wzór Opis Wynik
EndsWith( "Hello World", "world" ) Testuje, czy ciąg "Hello World" kończy się ciągiem "world". W teście nie jest uwzględniana wielkość liter. true
EndsWith( "Good bye", "good" ) Testuje, czy ciąg "Good bye" kończy się ciągiem "good". Argument funkcji EndText ("good") występuje w tekście, ale nie na końcu. false
EndsWith( "Always say hello", "hello" ) Testuje, czy ciąg "Always say hello" kończy się ciągiem "hello". true
EndsWith( "Bye bye", "" ) Testuje, czy ciąg "Bye bye" kończy się pustym ciągiem tekstowym (funkcja Len zwraca wartość 0). W celu ułatwienia jej użycia w wyrażeniach funkcji Filtruj, funkcję EndsWith zdefiniowano tak, aby w takim przypadku zwracała wartość prawda. true
Wzór Opis Wynik
StartsWith( "Hello World", "hello" ) Testuje, czy ciąg "Hello World" rozpoczyna się ciągiem "hello". W teście nie jest uwzględniana wielkość liter. true
StartsWith( "Good bye", "hello" ) Testuje, czy ciąg "Good bye" rozpoczyna się ciągiem "hello". false
StartsWith( "Always say hello", "hello" ) Testuje, czy ciąg "Always say hello" rozpoczyna się ciągiem "hello". Ciąg "hello" występuje w tekście, ale nie na początku. false
StartsWith( "Bye bye", "" ) Testuje, czy ciąg "Bye bye" rozpoczyna się pustym ciągiem tekstowym (funkcja Len zwraca wartość 0). W celu ułatwienia jej użycia w wyrażeniach funkcji Filtruj, funkcję StartsWith zdefiniowano tak, aby w takim przypadku zwracała wartość prawda. true

Wyszukiwanie – środowisko użytkownika

W wielu aplikacjach możesz wpisać jeden lub większą liczbę znaków w polu wyszukiwania, aby filtrować listę rekordów dużego zestawu danych. W miarę wpisywania lista jest odświeżana, aby zawierała tylko te rekordy, które spełniają kryteria wyszukiwania.

W przykładach w pozostałej części tego tematu przedstawiono wyniki wyszukiwania na liście Klienci, która zawiera następujące dane:

Przykładowa lista Klientów.

Aby utworzyć to źródło danych jako kolekcję, utwórz kontrolkę Button i ustaw jej właściwość OnSelect na następującą formułę:

ClearCollect( Customers, Table( { Name: "Fred Garcia", Company: "Northwind Traders" }, { Name: "Cole Miller", Company: "Contoso" }, { Name: "Glenda Johnson", Company: "Contoso" }, { Name: "Mike Collins", Company: "Adventure Works" }, { Name: "Colleen Jones", Company: "Adventure Works" } ) )

Jak w poniższym przykładzie, można wyświetlić listę rekordów w kontrolce Galeria u dołu ekranu. W górnej części ekranu można dodać kontrolkę Text input o nazwie SearchInput, dzięki której użytkownicy będę mogli określić, które rekordy ich interesują.

Galeria Klientów.

Podczas wpisywania znaków w kontrolce SearchInput wyniki w galerii są automatycznie filtrowane. W tym przypadku galeria jest skonfigurowana do wyświetlania rekordów, dla których nazwa klienta (nie nazwa firmy) rozpoczyna się od sekwencji znaków w kontrolce SearchInput. Jeśli użytkownik wpisze znaki co w polu wyszukiwania, w galerii zostaną wyświetlone następujące wyniki:

Galeria Klienci z wyszukiwaniem.

Aby filtrować na podstawie kolumny Name, ustaw właściwość Items kontrolki galerii na jedną z poniższych formuł:

Wzór Opis Wynik
Filter( Customers, StartsWith( Name, SearchInput.Text ) ) Filtruje źródło danych Customers, aby uzyskać rekordy, w których ciąg wyszukiwania występuje na początku wartości w kolumnie Name. W teście nie jest uwzględniana wielkość liter. Jeśli użytkownik wpisze ciąg co w polu wyszukiwania, w galerii zostaną wyświetleni klienci Colleen Jones i Cole Miller. W galerii nie zostanie wyświetlony klient Mike Collins, ponieważ wartość w kolumnie Name tego rekordu nie rozpoczyna się od ciągu wyszukiwania. Przykład StartsWith.
Filter( Customers, SearchInput.Text in Name ) Filtruje źródło danych Customers, aby uzyskać rekordy, w których ciąg wyszukiwania występuje w dowolnym miejscu wartości w kolumnie Name. W teście nie jest uwzględniana wielkość liter. Jeśli użytkownik wpisze ciąg co w polu wyszukiwania, w galerii zostaną wyświetleni klienci Colleen Jones,Cole Miller, i Mike Collins, ponieważ ciąg wyszukiwania występuje w wartości kolumny Name każdego z tych rekordów. Przykład pliku SearchInput.Text w Nazwie.
Search( Customers, SearchInput.Text, "Name" ) Podobnie jak w przypadku użycia operatora in, funkcja Search wyszukuje zgodny ciąg w dowolnym miejscu wartości kolumny Name każdego rekordu. Pamiętaj, że nazwę kolumny należy ująć w cudzysłów. Przykład pliku SearchInput.Text z Name.

Wyszukiwanie można rozszerzyć, aby oprócz kolumny Name objęło także kolumnę Company:

Wzór Opis Wynik
Filter( Customers, StartsWith( Name, SearchInput.Text ) || StartsWith( Company, SearchInput.Text ) ) Filtruje źródło danych Customers, aby uzyskać rekordy, w których ciąg wyszukiwania (na przykład co) występuje na początku wartości kolumny Name lub kolumny Company. ||Operator zwraca wartość true jeśli funkcja StartsWith ma wartość true. Filtruj za pomocą StartsWith.
Filter( Customers, SearchInput.Text in Name || SearchInput.Text in Company ) Filtruje źródło danych Customers, aby uzyskać rekordy, w których ciąg wyszukiwania (na przykład co) występuje w dowolnym miejscu wartości kolumny Name lub kolumny Company. Filtruj z tekstem wyszukiwania w nazwie.
Search( Customers, SearchInput.Text, "Name", "Company" ) Podobnie jak w przypadku użycia operatora in, funkcja Search przeszukuje źródło danych Customers, aby uzyskać rekordy, w których ciąg wyszukiwania (na przykład co) występuje w dowolnym miejscu wartości kolumny Name lub kolumny Company. Funkcja Search jest czytelniejsza i łatwiej ją zapisać niż funkcję Filter, jeśli chcesz określić wiele kolumn i wiele operatorów in. Pamiętaj, że nazwy kolumn należy ująć w cudzysłów. Filtruj z tekstem wyszukiwania w nazwie, firmą.