Funkcie filtrovania, vyhľadávania a vyhľadávania

Vzťahuje sa na: aplikácie plátna toky na počítači aplikácie riadené modelom Power Platform CLI

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

Pozrite si toto video a zistite, ako používať funkcie Filter, **Vyhľadávanie a Vyhľadávanie :

Poznámka

PAC CLI príkazy pac power-fx nepodporujú funkciu Hľadať .

Description

Funkcia Filter vyhľadá záznamy v tabuľke, ktoré vyhovujú vzorcu. Pomocou Filter vyhľadajte množinu záznamov, ktoré zodpovedajú jednému alebo viacerým kritériám, a vyhoďte záznamy, ktoré nevyhovujú.

Funkcia LookUp vyhľadá prvý záznam v tabuľke, ktorý vyhovuje vzorcu. Funkciu LookUp použite 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 Search vyhľadá záznamy v tabuľke, ktorá obsahuje reťazec v jednom zo svojich stĺpcov. Reťazec sa môže vyskytovať kdekoľvek v stĺpci; napríklad vyhľadaním výrazu „rob“ alebo „bert“ sa nájde zhoda v stĺpci, ktorý obsahuje výraz „Robert“. Vyhľadávanie nerozlišuje malé a veľké písmená. Na rozdiel od funkcií Filter a LookUp, funkcia Search používa na vyhľadanie zhody jeden reťazec namiesto vzorca.

Funkcie Filter a Search vrátia tabuľku, ktorá obsahuje rovnaké stĺpce ako pôvodná tabuľka, a záznamy vyhovujúce zadaným kritériám. Funkcia LookUp použije vzorec na obmedzenie záznamu na jednu hodnotu a vráti iba prvý nájdený záznam. Ak sa nenájdu žiadne záznamy, funkcie Filter a Search vrátia prázdnu tabuľku a funkcia LookUp vráti prázdnu hodnotu.

Tabuľky predstavujú hodnotu v Power Apps tak, ako reťazec alebo číslo. Môžu sa odovzdávať funkciám a funkcie ich môžu vracať. Funkcie Filter, Search a LookUp nemenia 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. Funkcie filtrovania a zoradenia budú fungovať na obmedzenej množine 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*, ... ] )

  • Table – povinné. Tabuľka, v ktorej sa má vyhľadávať.
  • + Formula(s) – 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ť. Ak zadáte viac vzorcov, skombinujú sa výsledky všetkých vzorcov pomocou funkcie And.

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

  • Table – 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.
  • Column(s) – 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 Power Apps pred verziou 3.24042 boli názvy stĺpcov pre funkciu Hľadať špecifikované textovým reťazcom pomocou dvojitých úvodzoviek a ak boli pripojené k zdroj údajov tiež museli byť logické názvy. Napríklad namiesto zobrazovaného mena Názov bez úvodzoviek bol použitý logický názov "cr43e_name" s dvojitými úvodzovkami. Pre zdroje údajov SharePoint a Excel, ktoré obsahujú názvy stĺpcov s medzerami, bola každá medzera špecifikovaná pomocou "_x0020_", napríklad "Názov stĺpca" ako "Názov_x0020_stĺpca". Po tejto verzii boli všetky aplikácie automaticky aktualizované na novú syntax opísanú v tomto článku.

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

  • Table – 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 Result
Filter( IceCream, OnOrder > 0 ) Vráti záznamy, ktoré majú v stĺpci OnOrder hodnotu väčšiu ako nula. Filter Na objednávku.
Filter( IceCream, Quantity + OnOrder > 225 ) Vráti záznamy, ktorých súčet stĺpcov Quantity a OnOrder je väčší ako 225. Filtrujte množstvo a objednávku.
Filter( IceCream, "chocolate" in Lower( Flavor ) ) Vráti záznamy, ktoré v stĺpci Flavor obsahujú „chocolate“ bez ohľadu na to, či je tento reťazec uvedený veľkými alebo malými písmenami. Filtrujte nižšie.
Filter (zmrzlina, množstvo < 10 && pri objednávke < 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. Filtrujte podľa množstva.
Hľadať (zmrzlina, "čokoláda", príchuť) Vráti záznamy, ktoré majú v stĺpci Flavor „choc“ bez ohľadu na to, či je tento reťazec uvedený veľkými alebo malými písmenami. Hľadať položky.
Hľadať (IceCream, "", Flavour) Keďže hľadaný výraz je prázdny, vrátia sa všetky záznamy. Vyhľadajte všetky položky.
LookUp( IceCream, Flavor = "Chocolate", Quantity ) Hľadá záznam s Príchuť rovnajúcou sa „Čokoláda“, z ktorých jeden je. 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 reťazec „Vanilla“ v stĺpci Flavor, vráti súčet hodnôt v stĺpcoch Quantity a OnOrder. 250
LookUp( IceCream, Flavor = "Pistachio", OnOrder ) Vyhľadá záznam, ktorý v stĺpci Flavor obsahuje reťazec „Pistachio“ – v tomto prípade žiadny taký záznam neexistuje. Pretože sa nenašli žiadne záznamy, funkcia Lookup vráti prázdnu hodnotu. blank
LookUp( IceCream, Flavor = "Vanilla" ) Hľadá záznam s príchuťou rovnajúcim sa „vanilka“, z ktorých jeden je. 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 ukazuje, ako Filtrovať zoznam obchodných vzťahov 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.

Vyhľadávanie v používateľskom prostredí

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:

Hľadajte u zákazníkov.

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ú.

Hľadajte 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:

Hľadať s 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 Popis 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 so začiatkom s.
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.
Hľadať (zákazníci, SearchInput.Text, Name) Podobne ako operátor in aj funkcia Search vyhľadá pre každý záznam zhodu kdekoľvek v stĺpci Meno. Názov stĺpca musíte uzavrieť do dvojitých úvodzoviek. Vyhľadajte zákazníkov.

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

Vzorec Popis 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. Začnite filtrovať zákazníkov.
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). Filtrujte vstupy vyhľadávania zákazníkov.
Hľadať (zákazníci, SearchInput.Text, Name, Company) Podobne ako v prípade operátora in a funkcie Search vyhľadá v zdroji údajov Zákazníci záznamy, v ktorých sa niekde v stĺpci Meno alebo Spoločnosť nachádza hľadaný reťazec (napríklad co). V prípade, že chcete zadať viac stĺpcov a operátorov in, funkcia Search sa v porovnaní s funkciou Filter ľahšie číta a píše.  Vyhľadávajte zákazníkov pomocou vstupu vyhľadávania.