Funkce EndsWith a StartsWith

Platí pro: aplikace plátna desktopové toky sloupce vzorců Dataverse modelem řízené aplikace Power Platform CLI

Testuje, jestli textovým řetězcem začíná nebo končí jiný textový řetězec.

Popis

Funkce EndsWith testuje, jestli jeden textový řetězec končí jiným textovým řetězcem.

Funkce StartsWith testuje, jestli jeden textový řetězec začíná jiným textovým řetězcem.

Testy u obou funkcí nerozlišují velká a malá písmena. Vrácenou hodnotou je logická hodnota true nebo false.

Funkce EndsWith a StartsWith můžete používat s funkcí Filter k vyhledání dat v aplikaci. 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. 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. Pokud některou z těchto funkcí delegovat nejde, zobrazí se při vytváření upozornění delegování, které vás na toto omezení upozorní.

Syntaxe

EndsWith( Text; KoncText )

  • Text – povinný argument. Text, který chcete otestovat.
  • KoncText – povinný argument. Text, který chcete vyhledat na konci řetězce Text. Pokud je KoncText prázdný řetězec, EndsWith vrátí hodnotu true.

StartsWith( Text; PočText )

  • Text – povinný argument. Text, který chcete otestovat.
  • PočText – povinný argument. Text, který chcete vyhledat na začátku řetězce Text. Pokud je PočText prázdný řetězec, StartsWith vrátí hodnotu true.

Příklady

Vzorec Popis Výsledek
EndsWith( "Hello World"; "world" ) Otestuje, jestli řetězec "Hello World" končí řetězcem "world". V testu se nerozlišují malá a velká písmena. true
EndsWith( "Good bye"; "good" ) Otestuje, jestli řetězec "Good bye" končí řetězcem "good". Argument KoncText ("good") se sice v textu vyskytuje, ale není na jeho konci. false
EndsWith( "Always say hello"; "hello" ) Otestuje, jestli řetězec "Always say hello" končí řetězcem "hello". true
EndsWith( "Bye bye", "" ) Otestuje, jestli řetězec "Bye bye" končí prázdným textovým řetězcem (Len vrátí 0). V tomto případě funkce EndsWith vrací hodnotu true a usnadňuje tak použití ve výrazech funkce Filter. true
Vzorec Popis Výsledek
StartsWith( "Hello World"; "hello" ) Otestuje, jestli řetězec "Hello World" začíná řetězcem "hello". V testu se nerozlišují malá a velká písmena. true
StartsWith( "Good bye"; "hello" ) Otestuje, jestli řetězec "Good bye" začíná řetězcem "hello". false
StartsWith( "Always say hello"; "hello" ) Otestuje, jestli řetězec "Always say hello" začíná řetězcem "hello". Řetězec "hello" se sice v textu vyskytuje, není ale na jeho začátku. false
StartsWith( "Bye bye"; "" ) Otestuje, jestli řetězec "Bye bye" začíná prázdným textovým řetězcem (Len vrátí 0). V tomto případě funkce StartsWith vrací hodnotu true a usnadňuje tak použití ve výrazech funkce Filter. true

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

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ů. Při psaní seznam průběžně zobrazuje jenom záznamy, které odpovídají kritériím hledání.

Příklady ve zbývající části tohoto tématu zobrazují výsledky hledání v seznamu Customers, který obsahuje tato data:

Příklad seznamu zákazníků.

Pokud chcete vytvořit tento zdroj dat jako kolekci, vytvořte ovládací prvek Button a jeho vlastnost OnSelect nastavte na tento vzorec:

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 Gallery dole na obrazovce. Do horní části obrazovky můžete přidat ovládací prvek Text input s názvem SearchInput, aby si uživatelé mohli zobrazit jenom záznamy, které je zajímají.

Galerie zákazníků.

Při psaní znaků do pole SearchInput se výsledky v galerii automaticky filtrují. 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:

Galerie zákazníků s vyhledáváním.

Pokud chcete filtrovat podle sloupce Name, nastavte vlastnost Items ovládacího prvku galerie na jeden z těchto vzorců:

Vzorec Popis Výsledek
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. V testu se nerozlišují malá a velká písmena. Pokud uživatel do pole hledání zadá co, galerie zobrazí Colleen Jones a Cole Miller. Galerie nezobrazí řetězec Mike Collins, protože sloupec Name pro daný záznam nezačíná hledaným řetězcem. Příklad StartsWith.
Filter( Customers; SearchInput.Text in Name ) Ze zdroje dat Customers vyfiltruje záznamy, v nichž se hledaný řetězec zobrazuje kdekoli ve sloupci Name. V testu se nerozlišují malá a velká písmena. 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. Příklad zápisu SearchInput.Text v názvu.
Search( Customers; SearchInput.Text; "Name" ) Podobně jako operátor in i funkce Search hledá pro každý záznam shodu kdekoli ve sloupci Name. Nezapomeňte, že název sloupce musíte uzavřít do dvojitých uvozovek. Příklad zápisu SearchInput.Text s názvem.

Hledání můžete rozšířit tak, aby se zahrnul sloupec Company i sloupec Name:

Vzorec Popis Výsledek
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). Operátor || je true, pokud je true i některá z funkcí StartsWith. Filtrování pomocí StartsWith.
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). Filtrování s hledaným textem v názvu.
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). 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. Nezapomeňte, že názvy sloupců musíte uzavřít do dvojitých uvozovek. Filtrování s hledaným textem v názvu a společnosti.