Filter, Searcha LookUp funkcie

Vzťahuje sa na: Aplikácie plátna Copilot Studio Desktop postupy modelom riadené aplikácie Power Platform CLI Dataverse funkcie Power Pages

Slúži k vyhľadaniu jedného alebo viacerých záznamov v tabuľke.

Pozrite si toto video a naučte sa používať Filterfunkcie , Searcha LookUp :

Poznámka

Príkazy PAC CLI pac jazyka power-fx nepodporujú Search funkciu.

Description

Funkcia vyhľadá Filter záznamy v tabuľke, ktoré vyhovujú vzorcu. Pomocou Filter nájdite množinu záznamov, ktoré spĺňajú jedno alebo viacero kritérií, a zahoďte tie záznamy, ktoré kritériám nevyhovujú.

Funkcia vyhľadá LookUp prvý záznam v tabuľke, ktorý vyhovuje vzorcu. Použite LookUp na vyhľadanie jedného záznamu, ktorý spĺňa jedno alebo viac kritérií.

V prípade oboch funkcií sa vzorec vyhodnocuje pre každý záznam tabuľky. Do výsledku sa zahrnú záznamy, ktorý výsledkom je hodnota pravda. Okrem bežných operátorov vzorca môžete použiť operátory in a exactin a vyhľadať zhody podreťazcov.

Polia záznamu, ktorý sa momentálne spracúva, sú k dispozícii v rámci vzorca. Použite operátor ThisRecord alebo jednoducho odkážte na polia podľa názvu, ako by ste urobili s ľubovoľnou inou hodnotou. Operátor As sa dá použiť aj na pomenovanie záznamu, ktorý sa práve spracúva, vďaka čomu môžete vytvoriť ľahšie pochopiteľný vzorec a sprístupniť vnorené záznamy. Ďalšie informácie nájdete v príkladoch nižšie a v téme, ako pracovať s rozsahom záznamu.

Funkcia vyhľadá Search záznamy v tabuľke, ktorá obsahuje reťazec v jednom zo svojich stĺpcov. Reťazec sa môže nachádzať kdekoľvek v stĺpci. Napríklad pri vyhľadávaní znaku "rob" alebo "bert" sa nájde zhoda v stĺpci, ktorý obsahuje znak .Robert Vyhľadávanie nerozlišuje malé a veľké písmená. Na rozdiel od Filter a LookUpSearchpoužíva funkcia jeden reťazec na zhodu namiesto vzorca.

Filter a Search vráti tabuľku, ktorá obsahuje rovnaké stĺpce ako pôvodná tabuľka, a záznamy, ktoré spĺňajú zadané kritériá. LookUp vráti iba prvý nájdený záznam po použití vzorca na zmenšenie záznamu na jednu hodnotu. Ak sa nenájdu žiadne záznamy, FilterSearch vráti sa prázdna tabuľka a LookUp vráti sa prázdna hodnota.

Tabuľky sú hodnotou v Power Apps, rovnako ako reťazec alebo číslo. Môžu sa odovzdávať funkciám a funkcie ich môžu vracať. Filter, Searcha LookUp neupravujte tabuľku. Namiesto toho vezmú tabuľku ako argument a vrátia tabuľku, záznam alebo jednu hodnotu z nej. Ďalšie podrobnosti nájdete v časti týkajúcej sa práce s tabuľkami.

Delegovanie

Keď to bude možné, platforma Power Apps bude delegovať operácie filtrovania a zoradenia na zdroj údajov a prechádzať stranami výsledkov na požiadanie. Keď napríklad spustíte aplikáciu, v ktorej sa zobrazuje ovládací prvok Galéria plný údajov, v zariadení sa najprv sprístupní iba prvá množina záznamov. Keď sa bude používateľ posúvať ďalej, zo zdroja údajov sa prenesú ďalšie údaje. Výsledkom bude rýchlejšie spustenie aplikácie a prístup k veľmi veľkým množinám údajov.

Delegovanie však nemusí byť vždy možné. Zdroje údajov sa líšia v tom, ktoré funkcie a operátory podporujú spolu s delegovaním. Ak úplné delegovanie vzorca nie je možné, prostredie vytvárania označí tú časť, ktorú nemožno delegovať, príznakom s upozornením. Ak je to možné, zvážte zmenu vzorca, aby ste sa vyhli funkciám a operátorom, ktoré nemožno delegovať. Zoznam delegovania podrobne uvádza, ktoré zdroje údajov a operácie možno delegovať.

Ak delegovanie nie je možné, platforma Power Apps stiahne iba malú množinu záznamov na lokálnu prácu. Filter Funkcie zoradenia a budú pracovať s omedznou množinou záznamov. Obsah dostupný v Galérii nemusí byť úplný, čo môže používateľov zmiasť.

Ďalšie informácie nájdete v prehľade delegovania.

Syntax

Filter(Table*, Formula1 [, *Formula2*, ... ] )

  • Tabuľka – povinné. Tabuľka, v ktorej sa má vyhľadávať.
  • Vzorce – povinné. Vzorec, podľa ktorého sa vyhodnocuje každý záznam tabuľky. Funkcia vráti všetky záznamy, ktorých výsledkom je hodnota pravda. Na stĺpce môžete v tabuľke odkazovať. V prípade zdrojov údajov Dataverse môže byť vzorec názvom zobrazenia Dataverse. Ak zadáte viac vzorcov, skombinujú sa výsledky všetkých vzorcov pomocou funkcie And.

Poznámka

Je možné vytvoriť zobrazenia Dataverse, ktoré vrátia ďalšie stĺpce zo súvisiacich tabuliek. Power Apps však vráti iba tie stĺpce, o ktorých je známe, že sú súčasťou zadaného zdroja údajov Dataverse.

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

  • Tabuľka – povinné. Tabuľka, v ktorej sa má vyhľadávať.
  • SearchString – povinné. Reťazec, ktorý sa má vyhľadať. Ak reťazec nezadáte alebo zadáte prázdny reťazec, vrátia sa všetky záznamy.
  • Stĺpce – povinné. Názvy stĺpcov v Tabuľke, v ktorých sa má vyhľadávať. Ak sa v údajoch ktoréhokoľvek stĺpca nájde SearchString ako čiastočná zhoda, vráti sa celý záznam.

Poznámka

V službe Power Apps pred verziou 3.24042 boli názvy stĺpcov pre Search funkciu zadané s textovým reťazcom pomocou dvojitých úvodzoviek, a ak boli pripojené k zdroju údajov, musia byť logické názvy. Napríklad logický názov "cr43e_name" s dvojitými úvodzovkami sa použil namiesto zobrazovaného názvu Bez úvodzoviek. V prípade sharepointových a excelových zdrojov údajov obsahujúcich názvy stĺpcov s medzerami bola každá medzera zadaná s "_x0020_", napríklad "Column Name" ako "Column_x0020_Name". Po tejto verzii boli všetky aplikácie automaticky aktualizované na novú syntax opísanú v tomto článku.

LookUp(Table*, Formula [, *ReductionFormula* ] )

  • Tabuľka – povinné. Tabuľka, v ktorej sa má vyhľadávať. V používateľskom rozhraní sa syntax zobrazí ako zdroj nad poľom funkcie.
  • Vzorec – povinné. Vzorec, podľa ktorého sa vyhodnocuje každý záznam tabuľky. Funkcia vráti prvý záznam, ktorého výsledkom je pravda. Na stĺpce môžete v tabuľke odkazovať. V používateľskom rozhraní sa syntax zobrazí ako podmienka nad poľom funkcie.
  • ReductionFormula – voliteľné. Tento vzorec sa vyhodnotí nad nájdeným záznamom a potom redukuje záznam na jedinú hodnotu. Na stĺpce môžete v tabuľke odkazovať. Ak tento parameter nepoužijete, funkcia vráti celý záznam z tabuľky. V používateľskom rozhraní sa syntax zobrazí ako výsledok nad poľom funkcie.

Príklady

Nasledujúce príklady používajú zdroj údajovIceCream:

Zmrzlina zdroj údajov.

Vzorec Description Výsledok
Filter(IceCream, OnOrder > 0) Vráti záznamy, ktoré majú v stĺpci OnOrder hodnotu väčšiu ako nula. Filter V objednávke.
Filter(IceCream, Quantity + OnOrder > 225) Vráti záznamy, ktorých súčet stĺpcov Quantity a OnOrder je väčší ako 225. Filter množstvo a objednávka.
Filter(IceCream, "chocolate" in Lower(Flavor )) Vráti záznamy, ktoré v názve chocolate nachádzajú slovo "", bez ohľadu na to, či je tento typ uvedený veľkými alebo malými písmenami. Filter v nižšej.
Filter(IceCream, Quantity < 10 && OnOrder < 20) Vráti záznamy, ktorých hodnota v stĺpci Quantity je menšia než 10 a hodnota v stĺpci OnOrder je menšia než 20. Týmto kritériám nevyhovujú žiadne záznamy, preto sa vráti prázdna tabuľka. Filter v množstve.
Search(IceCream, "choc", Flavor) Vráti záznamy, ktoré majú v názve choc reťazec "", bez ohľadu na to, či je tento reťazec uvedený veľkými alebo malými písmenami. Search Položky.
Search(IceCream, "", Flavor) Keďže hľadaný výraz je prázdny, vrátia sa všetky záznamy. Search všetky položky.
LookUp(IceCream, Flavor = "Chocolate", Quantity) Vyhľadá záznam, ktorý má v stĺpci Flavor reťazec "Chocolate", pričom v ňom je jeden záznam. Pre prvý nájdený záznam vráti hodnotu v stĺpci Quantity daného záznamu. 100
LookUp(IceCream, Quantity > 150, Quantity + OnOrder) Vyhľadá záznam, ktorý má v stĺpci Quantity hodnotu väčšiu než 150 – v našom prípade ide o viac záznamov. Pre prvý nájdený záznam, čo je "Vanilla" Flavor, vráti súčet hodnôt v stĺpcoch Quantity a OnOrder . 250
LookUp(IceCream, Flavor = "Pistachio", OnOrder) Vyhľadá záznam, ktorý má v stĺpci Flavor uvedené "Pistachio", v ktorom žiadna neexistuje. Pretože sa nenašli žiadne záznamy, funkcia Lookup vráti prázdnu hodnotu. prázdna
LookUp(IceCream, Flavor = "Vanilla") Vyhľadá záznam, ktorý má v stĺpci Flavor reťazec "Vanilla", pričom v ňom je jeden záznam. Pretože nebol zadaný žiadny redukčný vzorec, vráti sa celý záznam. { Flavor: "Vanilla", Quantity: 200, OnOrder: 75 }

Filtrovanie podľa vybraných stĺpcov

Nasledujúci príklad používa tabuľku Obchodný vzťah v Microsoft Dataverse ako zdroj údajov. Tento príklad znázorňuje Filter zoznam kont na základe vybratých hodnôt ovládacieho prvku Rozbaľovacie pole:

Podrobne

  1. Otvorte prázdnu aplikáciu.

  2. Pridajte novú obrazovku výberom možnosti Nová obrazovka.

  3. Na karte Vložiť vyberte možnosť Galéria a potom položku Zvislá.

  4. Na karte Vlastnosti pravej table otvorte Zdroj údajov a potom vyberte Obchodné vzťahy.

  5. (Voliteľné) V zozname Rozloženie vyberte rôzne možnosti.

  6. Na karte Vložiť vyberte možnosť Vstup a potom položku Rozbaľovacie pole. Opakujte tento krok a pridajte ďalšie dva ovládacie prvky rozbaľovacieho poľa.

  7. Pre každý ovládací prvok rozbaľovacieho poľa na karte Vlastnosti na pravej table otvorte Zdroj údajov a potom vyberte Obchodné vzťahy. Vyberte Upraviť vedľa možnosti Polia možnosť a potom vyberte hodnoty Primárny text a SearchField. Pole Primárny text by mal byť stĺpec možností, ktorý chcete pridať do rozbaľovacieho poľa. Opakujte tento krok pre ďalšie dva ovládacie prvky rozbaľovacieho poľa.

    Nastavenie hodnôt rozbaľovacieho zoznamu.

  8. Teraz vyberte ovládací prvok Galéria a nastavte vlastnosť Položky na nasledujúci 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'))
    

    Účty zdroj údajov.

Search používateľské prostredie

Nasledujúce príklady používajú zdroj údajovIceCream:

V mnohých aplikáciách môžete do vyhľadávacieho poľa zadať jeden alebo viac znakov a vyfiltrovať si tak z veľkého množstva údajov zoznam záznamov. Pri písaní zoznam priebežne zobrazuje len tie záznamy, ktoré vyhovujú kritériám vyhľadávania.

Príklady vo zvyšku tohto článku zobrazujú výsledky vyhľadávania v zozname s názvom Zákazníci, ktorý obsahuje tieto údaje:

Search o zákazníkoch.

Ak chcete vytvoriť tento zdroj údajov ako kolekciu, vytvorte ovládací prvok Tlačidlo a jeho vlastnosť 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" }) )

Rovnako ako v tomto príklade môžete zoznam záznamov zobraziť v ovládacom prvku Galérie v dolnej časti obrazovky. Do hornej časti obrazovky môžete pridať ovládací prvok Zadávanie textu s názvom SearchInput, aby si používatelia mohli zobraziť len tie záznamy, ktoré ich zaujímajú.

Search pomocou vstupu vyhľadávania.

Pri zadávaní znakov do poľa SearchInput sa výsledky v galérii automaticky filtrujú. V tomto prípade je galéria nakonfigurovaná tak, aby sa zobrazovali záznamy, pri ktorých meno zákazníka (nie názov spoločnosti) začína sekvenciou znakov zadanou do poľa SearchInput. Ak používateľ do poľa vyhľadávania zadá co, galéria zobrazí tieto výsledky:

Search začína na.

Ak chcete filtrovať podľa stĺpca Name, nastavte vlastnosť Items ovládacieho prvku galérie na jeden z týchto vzorcov:

Vzorec Description Výsledok
Filter(Customers, StartsWith(Name, SearchInput.Text) ) Zo zdroja údajov Customers vyfiltruje záznamy, v ktorých sa hľadaný reťazec v stĺpci Name vyskytuje na začiatku. V teste sa nerozlišujú malé a veľké písmená. Ak používateľ do vyhľadávacieho poľa zadá co, galéria zobrazí Colleen Jones a Cole Miller. Galéria nezobrazí reťazec Mike Collins, pretože stĺpec Meno pre tento záznam nezačína hľadaným reťazcom. Filter na začiatok.
Filter(Customers, SearchInput.Text in Name) Zo zdroja údajov Customers vyfiltruje záznamy, v ktorých sa hľadaný reťazec zobrazuje kdekoľvek v stĺpci Meno. V teste sa nerozlišujú malé a veľké písmená. Ak používateľ do vyhľadávacieho poľa zadá co, galéria zobrazí Colleen Jones, Cole Miller a Mike Collins, pretože vo všetkých týchto záznamoch sa hľadaný reťazec nachádza niekde v stĺpci Meno. Filter so vstupom vyhľadávania.
Search(Zákazníci, SearchInput.Text, Name) Podobne ako operátor inSearch aj funkcia vyhľadá pre každý záznam zhodu kdekoľvek v stĺpci Name . Názov stĺpca musíte uzavrieť do dvojitých úvodzoviek. Search zákazníci.

Hľadanie môžete rozšíriť tak, aby zahŕňalo stĺpec Company aj stĺpec Name:

Vzorec Description Výsledok
Filter(Customers, StartsWith(Name, SearchInput.Text) || StartsWith(Company, SearchInput.Text) ) Zo zdroja údajov Customers vyfiltruje záznamy, v ktorých stĺpec Name alebo stĺpec Company začína hľadaným reťazcom (napríklad co). Operátor|| má príznak pravda ak má funkcia StartsWith príznak pravda. Filter zákazníci začínajú na.
Filter(Customers, SearchInput.Text in Name || SearchInput. Text in Company) Zo zdroja údajov Zákazníci vyfiltruje záznamy, v ktorých sa niekde v stĺpci Meno alebo Spoločnosť nachádza hľadaný reťazec (napríklad Co). Filter zákazníci vyhľadávajú vstup.
Search(Customers, SearchInput.Text, Name, Company) Podobne ako operátor in aj funkcia vyhľadá v Search záznamy, v ktorých sa niekde v stĺpci Name alebo Company nachádza hľadaný reťazec (napríklad co). Táto Search funkcia sa ľahšie číta a píše ako Filter v prípade, ak chcete zadať viacero stĺpcov a operátorov in . Search zákazníci so vstupom vyhľadávania.