Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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:
| Vzorec | Description | Result |
|---|---|---|
| Filter(IceCream, OnOrder > 0) | Vrátí záznamy, které mají ve sloupci OnOrder hodnotu větší než nula. |
|
| Filter(IceCream, Quantity + OnOrder > 225) | Vrátí záznamy, jejichž součet sloupců Quantity a OnOrder je větší než 225. |
|
| 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(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. |
|
| 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(IceCream, "", Flavor) | Protože hledaný termín je prázdný, vrátí se všechny záznamy. |
|
| 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
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'))
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:
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í.
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 | 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(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. |
|
| 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. |
|
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, 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). |
|
| 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ů . |
|