Sdílet prostřednictvím


Filter, Searcha LookUp funkce

Platí pro: Aplikace plátna Copilot Studio Desktop toky modelem řízené aplikace Power Platform CLI Dataverse functions Power Pages

Slouží k vyhledání jednoho nebo více záznamů v tabulce.

V tomto videu se dozvíte, jak používat Filter, Searcha LookUp funkce:

Poznámka:

PAC CLI příkazy pac power-fx funkci nepodporují Search .

Description

Funkce Filter najde záznamy v tabulce, která vyhovuje vzorci. Slouží Filter k vyhledání sady záznamů, které odpovídají jednomu nebo více kritériím, a zahodí tyto záznamy, které ne.

Funkce LookUp najde první záznam v tabulce, která splňuje vzorec. Slouží LookUp k vyhledání jednoho záznamu, který odpovídá jednomu nebo více kritériím.

U obou funkcí se vzorec vyhodnocuje pro každý záznam tabulky. Do výsledku se zahrnou záznamy, jejichž výsledkem je hodnota true. Kromě běžných operátorů vzorce můžete použít operátory in a exactin a vyhledat shody podřetězců.

Aktuálně zpracovávaná pole záznamu jsou dostupná v rámci vzorce. Použijte operátor ThisRecord nebo jednoduše odkazujte na pole podle jména, jako byste měli jakoukoli jinou hodnotu. Operátor As lze také použít k pojmenování zpracovávaného záznamu, což může usnadnit pochopení vzorce a zpřístupnit vnořené záznamy. Další informace uvádějí následující příklady a práce s rozsahem záznamu.

Funkce Search najde záznamy v tabulce, která obsahuje řetězec v jednom ze svých sloupců. Řetězec se může nacházet kdekoli ve sloupci – například hledání řetězce „rob“ nebo „bert“ najde shodu ve sloupci, který obsahuje řetězec „Robert“. Při hledání se nerozlišují malá a velká písmena. Na rozdíl od Filter funkce a LookUpSearch funkce místo vzorce používá jeden řetězec.

Filter a Search vrátí tabulku, která obsahuje stejné sloupce jako původní tabulka, a záznamy, které splňují kritéria. LookUp vrátí pouze první nalezený záznam po použití vzorce pro zmenšení záznamu na jednu hodnotu. Pokud nejsou nalezeny žádné záznamy, Filter vrátí Searchprázdnou tabulku a LookUp vrátí prázdnou tabulku.

Tabulky jsou hodnotou v Power Apps, stejně jako řetězec nebo číslo. Můžou se předávat funkcím a funkce je můžou vracet. Filter, Searcha LookUp neupravujte tabulku. Místo toho vezmou tabulku jako argument a vrátí tabulku, záznam nebo jednu hodnotu z ní. Další podrobnosti najdete v části týkající se práce s tabulkami.

Delegování

Pokud to je možné, budou Power Apps delegovat operace filtrování a řazení do zdroje dat a na stránku prostřednictvím výsledků na vyžádání. Když například spustíte aplikaci, která obsahuje ovládací prvek Galerie s daty, bude do zařízení na počátku přenesena pouze první sada záznamů. Při procházení zdroj dat poskytuje další data. Výsledkem je rychlejší doba spouštění aplikace a přístup k velmi velkým sadám dat.

Delegování však nemusí být vždy možné. Zdroje dat se liší podle funkcí a operátorů, které při delegování podporují. Pokud není úplné delegování vzorce možné, označí autorské prostředí část, kterou nelze delegovat, varováním. Pokud to je možné, zvažte změnu vzorce tak, aby neobsahoval funkce a operátory, které nelze delegovat. Seznam delegování podrobně uvádí, které zdroje dat a operace lze delegovat.

Pokud delegování není možné Power Apps stáhne pouze malou sadu záznamů pro místní práci. Filter a funkce řazení budou fungovat se sníženou sadou záznamů. Co je dostupné v Galerii nemusí být kompletní, což by mohlo být pro uživatele matoucí.

Další informace viz přehled delegování.

Syntaxe

Filter(Tabulka*, Vzorec1 [, *Vzorec2*, ... ] )

  • Tabulka – Povinné. Tabulka, ve které se má vyhledávat
  • Vzorce – Povinné. Vzorec, podle kterého se vyhodnocuje každý záznam tabulky. Funkce vrátí všechny záznamy, jejichž výsledkem je hodnota true. Na sloupce v tabulce můžete odkazovat. Pokud zadáte více vzorců, zkombinují se výsledky všech vzorců pomocí funkce And.

Search(Table*, SearchString, Column1 [, *Column2*, ... ] )

  • Tabulka – Povinné. Tabulka, ve které se má vyhledávat
  • SearchString – Povinné. Řetězec, který se má vyhledat. Pokud řetězec nezadáte nebo zadáte prázdný řetězec, vrátí se všechny záznamy.
  • Sloupce – Povinné. Názvy sloupců v Tabulce, ve kterých se má hledat. Pokud se v datech kteréhokoli sloupce najde Hledaný_řetězec jako částečná shoda, vrátí se celý záznam.

Poznámka:

V Power Apps před verzí 3.24042 byly názvy sloupců pro Search funkci zadány pomocí textového řetězce pomocí dvojitých uvozovek a pokud jsou připojené ke zdroji dat, musely být také logické názvy. Například místo zobrazovaného názvu Název bez uvozovek byl použit logický název "cr43e_name" s dvojitými uvozovkami. U zdrojů dat SharePoint a Excel, které obsahují názvy sloupců s mezerami, byla každá mezera specifikována pomocí "_x0020_", například "Název sloupce" jako "Název_x0020_sloupce". Po této verzi byly všechny aplikace automaticky aktualizovány na novou syntaxi popsanou v tomto článku.

LookUp(Tabulka*, vzorec [, *ReductionFormula* ] )

  • Tabulka – Povinné. Tabulka, ve které se má vyhledávat V uživatelském rozhraní se syntaxe zobrazí jako zdroj nad polem funkce.
  • Vzorec – Povinný. Vzorec, podle kterého se vyhodnocuje každý záznam tabulky. Funkce vrátí první záznam, jehož výsledkem je true. Na sloupce v tabulce můžete odkazovat. V uživatelském rozhraní se syntaxe zobrazí jako podmínka nad polem funkce.
  • ReductionFormula – Volitelné. Tento vzorec se vyhodnotí nad nalezeným záznamem a potom redukuje záznam na jedinou hodnotu. Na sloupce v tabulce můžete odkazovat. Pokud tento parametr nepoužijete, funkce vrátí celý záznam z tabulky. V uživatelském rozhraní se syntaxe zobrazí jako výsledek nad polem funkce.

Příklady

Následující příklady používají zdroj datIceCream:

Zdroj dat Ice Cream.

Vzorec Description Result
Filter(IceCream, OnOrder > 0) Vrátí záznamy, které mají ve sloupci OnOrder hodnotu větší než nula. Filter Na objednávku.
Filter(IceCream, Quantity + OnOrder > 225) Vrátí záznamy, jejichž součet sloupců Quantity a OnOrder je větší než 225. Filter množství a objednávka.
Filter(IceCream, "chocolate" in Lower(Flavor )) Vrátí záznamy, které ve sloupci Flavor obsahují „chocolate“ bez ohledu na to, jestli je tento řetězec uveden velkými nebo malými písmeny. Filter ve spodním nátě.
Filter(IceCream, Quantity < 10 && OnOrder < 20) Vrátí záznamy, jejichž hodnota ve sloupci Quantity je menší než 10 a hodnota ve sloupci OnOrder je menší než 20. Těmto kritériím nevyhovují žádné záznamy, a proto se vrátí prázdná tabulka. Filter na množství.
Search(IceCream, "choc", Flavor) Vrátí záznamy, které mají ve sloupci Flavor „choc“ bez ohledu na to, jestli je tento řetězec uveden velkými nebo malými písmeny. Search položky.
Search(IceCream, "", Flavor) Protože hledaný termín je prázdný, vrátí se všechny záznamy. Search všechny položky.
LookUp(IceCream, Flavor = "Chocolate", Quantity) Vyhledá záznam, který má ve sloupci Flavor řetězec Chocolate – v našem případě vyhledá jeden záznam. Pro první nalezený záznam vrátí hodnotu ve sloupci Quantity daného záznamu. 100
LookUp(IceCream, Quantity > 150, Quantity + OnOrder) Vyhledá záznam, který má ve sloupci Quantity hodnotu větší než 150 – v našem případě se jedná o více záznamů. Pro první nalezený záznam, což je řetězec Vanilla ve sloupci Flavor, vrátí součet hodnot ve sloupcích Quantity a OnOrder. 250
LookUp(IceCream, Flavor = "Pistachio", OnOrder) Vyhledá záznam, který ve sloupci Flavor obsahuje řetězec Pistachio – v tomto případě žádný takový záznam neexistuje. Protože se nenašly žádné záznamy, funkce Lookup vrátí prázdnou hodnotu. prázdný
LookUp(IceCream, Flavor = "Vanilla") Vyhledá záznam, který má ve sloupci Flavor uvedeno Vanilla – v tomto případě se vyhledá jeden záznam. Protože nebyl zadán žádný redukční vzorec, vrátí se celý záznam. { Flavor: "Vanilla"; Quantity: 200; OnOrder: 75 }

Filtrování se sloupci s volbami

Následující příklad používá tabulku Obchodní vztah v Microsoft Dataverse jako zdroj dat. Tento příklad ukazuje, jak zobrazit Filter seznam účtů na základě vybraných hodnot ovládacího prvku Pole se seznamem:

Podrobný postup

  1. Otevřete prázdnou aplikaci.

  2. Přidejte novou obrazovku výběrem možnosti Nová obrazovka.

  3. Na kartě Vložit vyberte Galerii a poté vyberte Vertikální.

  4. Na kartě Vlastnosti otevřete pravé podokno, otevřete Zdroj dat a poté vyberte Obchodní vztahy.

  5. (Volitelně) V seznamu Rozložení vyberte různé možnosti.

  6. Na kartě Vložit vyberte Vstup a poté vyberte Combo box. Opakujte krok a přidejte další dva ovládací prvky Combo box.

  7. Pro každý ovládací prvek Combo box na kartě Vlastnosti otevřete pravé podokno, otevřete Zdroj dat a poté vyberte Obchodní vztahy. Vyberte Upravit vedle možnosti Pole a poté vyberte hodnoty Primární text a SearchField. Primární text by měl být sloupec s volbami, který chcete přidat do pole se seznamem. Opakujte krok pro ostatní dva ovládací prvky Combo box.

    Nastavení hodnot pole se seznamem.

  8. Nyní vyberte ovládací prvek Gallery a nastavte vlastnost Items na následující vzorec:

    Filter(Accounts,
     'Industry' = ComboBox3.Selected.Industry Or IsBlank(ComboBox3.Selected.Industry),
     'Relationship Type' = ComboBox2.Selected.'Relationship Type' Or
       IsBlank(ComboBox2.Selected.'Relationship Type'),
     'Preferred Method of Contact' = ComboBox1.Selected.'Preferred Method of Contact' Or
       IsBlank(ComboBox1.Selected.'Preferred Method of Contact'))
    

    Zdroj dat obchodních vztahů.

Search uživatelské prostředí

Následující příklady používají zdroj datIceCream:

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 článku zobrazují výsledky hledání v seznamu s názvem Zákazníci, který obsahuje tato data:

Search na zákazníky.

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({ Jméno: "Fred Garcia", Společnost: "Northwind Traders" }, { Jméno: "Cole Miller", Společnost: "Contoso" }, { Jméno: "Glenda Johnson", Společnost: "Contoso" }, { Jméno: "Mike Collins", Společnost: "Adventure Works" }, { Název : "Colleen Jones", Společnost: "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í.

Search pomocí vstupu hledání.

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 pole hledání zadá co, galerie zobrazí tyto výsledky:

Search na začátku.

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

Vzorec Description Result
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. Filter a začněte.
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. Filter s hledaným vstupem.
Search(Customers, SearchInput.Text, Name) Podobně jako použití operátoru Searchin funkce vyhledá shodu kdekoli ve sloupci Name každého záznamu. Název sloupce musíte uzavřít do dvojitých uvozovek. Search zákazníci.

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

Vzorec Description Result
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. Filter zákazníci začínají.
Filter(Zákazníci, SearchInput.Text v názvu || SearchInput. Text ve společnosti) 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). Filter zákazníci hledají vstup.
Search(Customers, SearchInput.Text, Name, Company) Podobně jako při použití operátoruSearch funkce vyhledá ve zdroji dat Customers záznamy, ve kterých sloupec Name nebo Company obsahuje hledaný řetězec (například co) kdekoli v něm. Funkce Search se snadněji čte a zapisuje, než Filter kdybyste chtěli zadat více sloupců a více operátorů . Search zákazníci se vstupem hledání.