Funkce Filter, Search a LookUp
Platí pro: aplikace na plátně toky na počítači modelem řízené aplikace Power Pages Power Platform CLI
Slouží k vyhledání jednoho nebo více záznamů v tabulce.
Podívejte se na toto video a zjistěte, jak používat funkce Filter, **Search a LookUp:
Poznámka:
PAC CLI příkazy pac power-fx nepodporují funkci Hledat .
Description
Funkce Filter vyhledá záznamy v tabulce, které vyhovují vzorci. Funkce Filter slouží k vyhledání sady záznamů, které odpovídají jednomu nebo více kritériím, a k zahození těch, které kritéria nesplňují.
Funkce LookUp vyhledá první záznam v tabulce, který vyhovuje vzorci. Funkci LookUp použijte k vyhledání jednoho záznamu, který splňuje jedno nebo více kritérií.
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 vyhledá 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 funkcí Filter a LookUp funkce Search používá k vyhledání shody jeden řetězec místo vzorce.
Filtr a Hledat vrátí tabulku, která obsahuje stejné sloupce jako původní tabulka a záznamy, které odpovídají kritériím. LookUp vrátí pouze první nalezený záznam po použití vzorce pro snížení záznamu na jednu hodnotu. Pokud se nenajdou žádné záznamy, funkce Filter a Search vrátí prázdnou tabulku a funkce LookUp vrátí prázdnou hodnotu.
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. Filtr, Hledat a Vyhledat tabulku neupravují. 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. Funkce filtrování a řazení budou fungovat pouze u redukované sady 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
Filtr(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.
Hledat(Tabulka*, Vyhledávací řetězec, Sloupec1 [, *Sloupec2*, . ..])
- 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 funkci Hledat zadány pomocí textového řetězce pomocí dvojitých uvozovek, a pokud byly připojeny ke zdroji dat, také musely mít 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 dat IceCream:
Vzorec | Description | Result |
---|---|---|
Filtr(Zmrzlina, NaObjednávku > 0) | Vrátí záznamy, které mají ve sloupci OnOrder hodnotu větší než nula. | |
Filtr (zmrzlina, množství + na objednávku > 225) | Vrátí záznamy, jejichž součet sloupců Quantity a OnOrder je větší než 225. | |
Filtr (IceCream, "čokoláda" v nižším (příchuť)) | 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. | |
Filtr (zmrzlina, množství < 10 && při objednávce < 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. | |
Hledat (zmrzlina, "čokoláda", příchuť) | 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. | |
Hledat (zmrzlina, "", příchuť) | Protože hledaný termín je prázdný, vrátí se všechny záznamy. | |
LookUp(IceCream, Flavor = "Čokoláda", Množství) | 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 |
Vyhledat (zmrzlina, množství > 150, množství + na objednávku) | 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 = "Pistácie", 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 (zmrzlina, příchuť = "vanilka") | 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 filtrovat seznam obchodních vztahů na základě vybraných hodnot ovládacího prvku Combo box:
Podrobný postup
Otevřete prázdnou aplikaci.
Přidejte novou obrazovku výběrem možnosti Nová obrazovka.
Na kartě Vložit vyberte Galerii a poté vyberte Vertikální.
Na kartě Vlastnosti otevřete pravé podokno, otevřete Zdroj dat a poté vyberte Obchodní vztahy.
(Volitelně) V seznamu Rozložení vyberte různé možnosti.
Na kartě Vložit vyberte Vstup a poté vyberte Combo box. Opakujte krok a přidejte další dva ovládací prvky Combo box.
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.
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'))
Vyhledávání v uživatelském prostředí
Následující příklady používají zdroj dat IceCream:
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:
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" }, { Název: "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í.
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:
Pokud chcete filtrovat podle sloupce Name, nastavte vlastnost Items ovládacího prvku galerie na jeden z těchto vzorců:
Vzorec | Popis | Výsledek |
---|---|---|
Filtr(Zákazníci, StartsWith(Název, 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. | |
Filtr (zákazníci, 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. | |
Hledat (zákazníci, SearchInput.Text, Name) | Podobně jako operátor in i funkce Search hledá pro každý záznam shodu kdekoli ve sloupci Name. Název sloupce musíte uzavřít do dvojitých uvozovek. |
Hledání můžete rozšířit tak, aby se zahrnul sloupec Company a sloupec Name:
Vzorec | Popis | Výsledek |
---|---|---|
Filtr(Zákazníci, ZačínáWith(Jméno, 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. | |
Filtr(Zákazníci, 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). | |
Hledat (zákazníci, 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. |