Funkce EndsWith a StartsWith v PowerAppsEndsWith and StartsWith functions in PowerApps

Testuje, jestli textovým řetězcem začíná nebo končí jiný textový řetězec.Tests whether a text string begins or ends another text string.

PopisDescription

Funkce EndsWith testuje, jestli jeden textový řetězec končí jiným textovým řetězcem.The EndsWith function tests whether one text string ends with another.

Funkce StartsWith testuje, jestli jeden textový řetězec začíná jiným textovým řetězcem.The StartsWith function tests whether one text string begins with another.

Testy u obou funkcí nerozlišují velká a malá písmena.For both functions, the tests are case insensitive. Vrácenou hodnotou je logická hodnota true nebo false.The return value of both is a Boolean true or false.

Funkce EndsWith a StartsWith můžete používat s funkcí Filter k vyhledání dat v aplikaci.Use EndsWith and StartsWith with the Filter function to search the data within your app. Pomocí operátoru in nebo funkce Search můžete také vyhledávat kdekoli v textových řetězcích, nejenom na začátku nebo na konci.You can also use the in operator or the Search function to look anywhere within text strings, not just at the beginning or end. To, které funkce si zvolíte, bude záviset na potřebách aplikace a na tom, kterou funkci můžete pro konkrétní zdroj dat delegovat.Your choice of functions will depend on the needs of your app and which function can be delegated for your particular data source. Pokud některou z těchto funkcí delegovat nejde, zobrazí se při vytváření modrá tečka, která vás na toto omezení upozorní.If one of these functions can't be delegated, a blue dot will appear at authoring time to warn you of this limitation.

SyntaxeSyntax

EndsWith( Text; KoncText )EndsWith( Text, EndText )

  • Text – povinné.Text – Required. Text, který chcete otestovatThe text to test.
  • KoncText – povinný argument.EndText – Required. Text, který chcete vyhledat na konci řetězce TextThe text to search for at the end of Text. Pokud je KoncText prázdný řetězec, EndsWith vrátí hodnotu true.If EndText is an empty string, EndsWith returns true.

StartsWith( Text; PočText )StartsWith( Text, StartText )

  • Text – povinné.Text – Required. Text, který chcete otestovatThe text to test.
  • PočText – povinný argument.StartText – Required. Text, který chcete vyhledat na začátku řetězce TextThe text to search for at the beginning of Text. Pokud je PočText prázdný řetězec, StartsWith vrátí hodnotu true.If StartText is an empty string, StartsWith returns true.

PříkladyExamples

VzorecFormula PopisDescription VýsledekResult
EndsWith( "Hello World"; "world" )EndsWith( "Hello World", "world" ) Otestuje, jestli řetězec "Hello World" končí řetězcem "world".Tests whether "Hello World" ends with "world". V testu se nerozlišují malá a velká písmena.The test is case insensitive. truetrue
EndsWith( "Good bye"; "good" )EndsWith( "Good bye", "good" ) Otestuje, jestli řetězec "Good bye" končí řetězcem "good".Tests whether "Good bye" ends with "good". Argument KoncText ("good") se sice v textu vyskytuje, ale není na jeho konci.The EndText argument ("good") appears in the text but not at the end. falsefalse
EndsWith( "Always say hello"; "hello" )EndsWith( "Always say hello", "hello" ) Otestuje, jestli řetězec "Always say hello" končí řetězcem "hello".Tests whether "Always say hello" ends with "hello". truetrue
Endswith( "Bye bye"; "" )Endswith( "Bye bye", "" ) Otestuje, jestli řetězec "Bye bye" končí prázdným textovým řetězcem (Len vrátí 0).Tests whether "Bye bye" ends with an empty text string (Len returns 0). V tomto případě funkce EndsWith vrací hodnotu true a usnadňuje tak použití ve výrazech funkce Filter.Easing its use in Filter expressions, EndsWith is defined to return true in this case. truetrue
VzorecFormula PopisDescription VýsledekResult
StartsWith( "Hello World"; "hello" )StartsWith( "Hello World", "hello" ) Otestuje, jestli řetězec "Hello World" začíná řetězcem "hello".Tests whether "Hello World" begins with "hello". V testu se nerozlišují malá a velká písmena.The test is case insensitive. truetrue
StartsWith( "Good bye"; "hello" )StartsWith( "Good bye", "hello" ) Otestuje, jestli řetězec "Good bye" začíná řetězcem "hello".Tests whether "Good bye" begins with "hello". falsefalse
StartsWith( "Always say hello"; "hello" )StartsWith( "Always say hello", "hello" ) Otestuje, jestli řetězec "Always say hello" začíná řetězcem "hello".Tests whether "Always say hello" begins with "hello". Řetězec "hello" se sice v textu vyskytuje, není ale na jeho začátku.Although "hello" appears in the text, it doesn't appear at the beginning. falsefalse
StartsWith( "Bye bye"; "" )StartsWith( "Bye bye", "" ) Otestuje, jestli řetězec "Bye bye" začíná prázdným textovým řetězcem (Len vrátí 0).Tests whether "Bye bye" starts with an empty text string (Len returns 0). V tomto případě funkce StartsWith vrací hodnotu true a usnadňuje tak použití ve výrazech funkce Filter.Easing its use in Filter expressions, StartsWith is defined to return true in this case. truetrue

Vyhledávání v uživatelském prostředíSearch user experience

V mnoha aplikacích můžete do vyhledávacího pole zadat jeden nebo více znaků a vyfiltrovat si tak z velké sady dat seznam záznamů.In many apps, you can type one or more characters into a search box to filter a list of records in a large data set. Při psaní seznam průběžně zobrazuje jenom záznamy, které odpovídají kritériím hledání.As you type, the list shows only those records that match the search criteria.

Příklady ve zbývající části tohoto tématu zobrazují výsledky hledání v seznamu Customers, který obsahuje tato data:The examples in the rest of this topic show the results of searching a Customers list that contains this data:

Pokud chcete vytvořit tento zdroj dat jako kolekci, vytvořte ovládací prvek Tlačítko a jeho vlastnost OnSelect nastavte na tento vzorec:To create this data source as a collection, create a Button control and set its OnSelect property to this formula:

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" } ) )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" } ) )

Stejně jako v tomto příkladu můžete seznam záznamů zobrazit v ovládacím prvku Galerie dole na obrazovce.As in this example, you can show a list of records in a Gallery control at the bottom of a screen. Do horní části obrazovky můžete přidat ovládací prvek Textové zadání s názvem SearchInput, aby si uživatelé mohli zobrazit jenom záznamy, které je zajímají.Near the top of the screen, you can add a Text input control, named SearchInput, so that users can specify which records interest them.

Při psaní znaků do pole SearchInput se výsledky v galerii automaticky filtrují.As the user types characters in SearchInput, the results in the gallery are automatically filtered. V tomto případě je galerie nakonfigurovaná tak, aby se zobrazovaly záznamy, u nichž jméno zákazníka (nikoli název společnosti) začíná sekvencí znaků zadanou do pole SearchInput. Pokud uživatel do vyhledávacího pole zadá co, galerie zobrazí tyto výsledky:In this case, the gallery is configured to show records for which the name of the customer (not the name of the company) starts with the sequence of characters in SearchInput.If the user types co in the search box, the gallery shows these results:

Pokud chcete filtrovat podle sloupce Name, nastavte vlastnost Items ovládacího prvku galerie na jeden z těchto vzorců:To filter based on the Name column, set the Items property of the gallery control to one of these formulas:

VzorecFormula PopisDescription VýsledekResult
Filter( Customers; StartsWith( Name; SearchInput.Text ) )Filter( Customers, StartsWith( Name, SearchInput.Text ) ) Ze zdroje dat Customers vyfiltruje záznamy, ve kterých se hledaný řetězec ve sloupci Name vyskytuje na začátku.Filters the Customers data source for records in which the search string appears at the start of the Name column. V testu se nerozlišují malá a velká písmena.The test is case insensitive. Pokud uživatel do pole hledání zadá co, galerie zobrazí Colleen Jones a Cole Miller.If the user types co in the search box, the gallery shows Colleen Jones and Cole Miller. Galerie nezobrazí řetězec Mike Collins, protože sloupec Name pro daný záznam nezačíná hledaným řetězcem.The gallery doesn't show Mike Collins because the Name column for that record doesn't start with the search string.
Filter( Customers; SearchInput.Text in Name )Filter( Customers, SearchInput.Text in Name ) Ze zdroje dat Customers vyfiltruje záznamy, v nichž se hledaný řetězec zobrazuje kdekoli ve sloupci Name.Filters the Customers data source for records in which the search string appears anywhere in the Name column. V testu se nerozlišují malá a velká písmena.The test is case insensitive. Pokud uživatel do vyhledávacího pole zadá co, galerie zobrazí Colleen Jones, Cole Miller a Mike Collins, protože u všech těchto záznamů se hledaný řetězec nachází někde ve sloupci Name.If the user types co in the search box, the gallery shows Colleen Jones, Cole Miller, and Mike Collins because the search string appears somewhere in the Name column of all of those records.
Search( Customers; SearchInput.Text; "Name" )Search( Customers, SearchInput.Text, "Name" ) Podobně jako operátor in i funkce Search hledá pro každý záznam shodu kdekoli ve sloupci Name.Similar to using the in operator, the Search function searches for a match anywhere within the Name column of each record. Nezapomeňte, že název sloupce musíte uzavřít do dvojitých uvozovek.Note that you must enclose the column name in double quotation marks.

Hledání můžete rozšířit tak, aby se zahrnul sloupec Company i sloupec Name:You can expand your search to include the Company column as well as the Name column:

VzorecFormula PopisDescription VýsledekResult
Filter( Customers; StartsWith( Name; SearchInput.Text ) || StartsWith( Company; SearchInput.Text ) )Filter( Customers, StartsWith( Name, SearchInput.Text ) || StartsWith( Company, SearchInput.Text ) ) Ze zdroje dat Customers vyfiltruje záznamy, u kterých sloupec Name nebo sloupec Company začíná hledaným řetězcem (například co).Filters the Customers data source for records in which either the Name column or the Company column starts with the search string (for example, co). Operátor || je true, pokud je true i některá z funkcí StartsWith.The || operator is true if either StartsWith function is true.
Filter( Customers; SearchInput.Text in Name || SearchInput.Text in Company )Filter( Customers, SearchInput.Text in Name || SearchInput.Text in Company ) Ze zdroje dat Customers vyfiltruje záznamy, u kterých se někde ve sloupci Name nebo Company vyskytuje hledaný řetězec (například co).Filters the Customers data source for records in which either the Name column or the Company column contains the search string (for example, co) anywhere within it.
Search( Customers; SearchInput.Text; "Name"; "Company" )Search( Customers, SearchInput.Text, "Name", "Company" ) Podobně jako u operátoru in i funkce Search vyhledá ve zdroji dat Customers záznamy, u kterých se někde se ve sloupci Name nebo Company vyskytuje hledaný řetězec (například co).Similar to using the in operator, the Search function searches the Customers data source for records in which either the Name column or the Company column contains the search string (for example, co) anywhere within it. V případě, že chcete zadat více sloupců a více operátorů in, funkce Search se oproti funkci Filter snadněji čte i píše.The Search function is easier to read and write than Filter if you want to specify multiple columns and multiple in operators. Nezapomeňte, že názvy sloupců musíte uzavřít do dvojitých uvozovek.Note that you must enclose the names of the columns in double quotation marks.