Filter, Searchés LookUp függvények

A következőkre vonatkozik: Vászonalapú alkalmazások Copilot Studio Desktop folyamatok Modellalapú alkalmazások Power Platform CLI Dataverse függvények Power Pages

Egy tábla egy vagy több rekordjának megkeresésére szolgál.

Ebből a videóból megtudhatja, hogyan használhatja és használhatja FilterSearchLookUp a függvényeket:

Megjegyzés:

A PAC CLI pac power-fx parancsai nem támogatják a függvényt Search .

Description

A Filter függvény olyan rekordokat keres egy táblában, amely megfelel egy képletnek. Egy vagy több feltételnek megfelelő rekordkészlet megkeresésére és a nem megfelelő rekordok elvetésére használható Filter .

A LookUp függvény megkeresi az első olyan rekordot egy táblában, amely megfelel egy képletnek. Egyetlen rekord megkeresésére használható LookUp , amely megfelel egy vagy több feltételnek.

Mindkét esetben a rendszer a tábla minden rekordjánál kiértékeli a feltételt. Az eredmények közé azok a rekordok kerülnek be, amelyek true eredményt adnak. A képletek normál operátorai mellett az in és az exactin operátor is használható a sztringrészletek egyezéseihez.

Az aktuálisan feldolgozás alatt álló rekordmezők elérhetők a képletben. Használja a ThisRecord operátort, vagy egyszerűen hivatkozzon név szerint a mezőkre, ahogy más értéket is hivatkozna. Az As operátor a feldolgozás alatt álló rekord elnevezésére használatos, amellyel könnyebben érthető a képlet, és hozzáférhetőbbek a beágyazott rekordok. További információkért lásd az alábbi példákat és a rekord hatókörével való munkát.

A Search függvény olyan rekordokat keres egy táblában, amely egy sztringet tartalmaz az egyik oszlopban. A sztring bárhol előfordulhat az oszlopon belül; A "" vagy a "robbert" kifejezés keresése például egyezést talál egy "Robert"-t tartalmazó oszlopban. A keresés nem különbözteti meg a kis- és nagybetűket. FilterA LookUp függvény a Search képlet helyett egyetlen sztringet használ.

Filter és Search visszaad egy táblát, amely ugyanazokat az oszlopokat tartalmazza, mint az eredeti tábla és a feltételeknek megfelelő rekordok. LookUp Csak az első talált rekordot adja vissza, miután képletet alkalmazott a rekord egyetlen értékre való csökkentéséhez. Ha nem található rekord, Filter és Searchüres táblát ad vissza, és LookUpüres értéket ad vissza.

A táblázatok értékek, akárcsak a karakterláncok Power Apps vagy számok. így függvények alapjául és eredményeként is szolgálhatnak. Filter, Searchés LookUp ne módosítsa a táblázatot. Ehelyett argumentumként kezelik a táblákat, amely alapján egy másik táblát, rekordot vagy egyetlen értéket adnak vissza. További részleteket a táblákkal való munkával foglalkozó témakörben talál.

Delegálás

Amikor lehetséges, a Power Apps az adatforrásnak delegálja a szűrési és rendezési műveleteket, és igény szerint lapozza át az eredményeket. Ha például elindít egy alkalmazást, amely megjelenít egy adatokkal feltöltött gyűjtemény vezérlőt, először csak a bejegyzések első csoportja kerül az eszközre. Miközben a felhasználó görget, további adatok lekérése történik az adatforrásból. Az eredmény az alkalmazás gyorsabb indulása, és a hozzáférés a nagyon nagy adathalmazokhoz.

Azonban előfordulhat, hogy a delegálás nem mindig lehetséges. Az adatforrások eltérőek abból a szempontból, hogy milyen függvények és operátorok esetében támogatják a delegálást. Ha egy képlet teljes delegálása nem lehetséges, a fejlesztői környezet figyelmeztetéssel jelöli meg a nem delegálható részt. Amikor csak lehetséges, érdemes módosítani a képletet, hogy le legyenek nem delegálható függvények és operátorok. A delegálási lista részletesen tartalmazza, hogy mely adatforrások és milyen műveletek delegálhatók.

Ha a delegálás nem lehetséges, a Power Apps a bejegyzéseknek csak egy kis részét hívja le helyben történő használata. Filter és a rendezési függvények kevesebb rekordon fognak működni. Előfordulhat, hogy az, ami a gyűjteményben rendelkezésre áll, nem fedi le a teljes képet, ami zavaros lehet a felhasználók számára.

További információkért lásd: a delegálás áttekintése.

Szemantika

Filter(Táblázat*, 1. képlet [, *Képlet2*, ... ] )

  • Tábla - Kötelező. A kereséshez használni kívánt tábla.
  • Képletek - Kötelező. A képlet, amelyek alapján a rendszer kiértékeli a tábla egyes rekordjait. A függvény visszaadja az összes olyan rekordot, amely true eredményt ad. A hivatkozás alapjául a táblában szereplő oszlopok használhatók. Dataverse-adatforrások esetén a képletek a Dataverse-nézet nevei lehetnek. Ha több képletet ad meg, akkor a képletek eredményeit az And függvénnyel lehet kombinálni.

Megjegyzés:

Dataverse-nézetek hozhatók létre, amelyek további oszlopokat ad vissza a kapcsolódó táblákból. Power Apps azonban csak azokat az oszlopokat adja vissza, amelyek ismerten a megadott Dataverse-adatforrás részei.

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

  • Tábla - Kötelező. A kereséshez használni kívánt tábla.
  • SearchString – Kötelező. A keresendő sztring. Ha üres sztring, akkor a rendszer az összes rekordot visszaadja.
  • Oszlopok - Kötelező. A kereséshez használni kívánt oszlopok nevei a Táblában. Ha a rendszer bármelyik oszlop adataiban megtalálja a Keresési sztringet részleges egyezésként, akkor a teljes rekordot visszaadja.

Megjegyzés:

A Power Appsben a 3.24042-es verzió előtt a Search függvény oszlopneveit egy szöveges sztringgel, dupla idézőjelekkel adták meg, és ha adatforráshoz csatlakoztak, akkor logikai neveknek is kellett lenniük. Például a kettős idézőjeleket tartalmazó logikai nevet "cr43e_name" használták a megjelenített név helyett , idézőjelek nélkül. A szóközökkel rendelkező oszlopneveket tartalmazó SharePoint- és Excel-adatforrások esetében minden szóköz meg lett adva például "_x0020_""Column Name"a következővel"Column_x0020_Name": . Ezt a verziót követően az összes alkalmazás automatikusan frissült a cikkben ismertetett új szintaxisra.

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

  • Tábla - Kötelező. A kereséshez használni kívánt tábla. A felhasználói felületen a szintaxis forrásként jelenik meg a függvénymező felett.
  • Képlet - kötelező. A képlet, amelyek alapján a rendszer kiértékeli a tábla egyes rekordjait. A függvény visszaadja az első olyan rekordot, amely true eredményt ad. A hivatkozás alapjául a táblában szereplő oszlopok használhatók. A felhasználói felületen a szintaxis feltételként jelenik meg a függvénymező felett.
  • ReductionFormula - Nem kötelező. A rendszer e képlet alapján értékeli ki a megtalált rekordot, majd egyetlen értékre csökkenti a rekordot. A hivatkozás alapjául a táblában szereplő oszlopok használhatók. Ha nem használja ezt a paramétert, akkor a függvény a teljes rekordot adja vissza a táblából. A felhasználói felületen a szintaxis eredményként jelenik meg a függvénymező felett.

Példák

A következő példák a Jégkrémadatforrást használják:

Fagylalt adatforrás.

Formula Description Result
Filter(IceCream, OnOrder > 0) Visszaadja azokat a rekordokat, ahol a Rendelés nagyobb, mint nulla. Filter Sorrendben.
Filter(IceCream, Quantity + OnOrder > 225) Visszaadja azokat a rekordokat, ahol a Mennyiség és a Rendelés oszlop összege nagyobb, mint 225. Filter mennyiség és rendelés.
Filter(IceCream, "chocolate" in Lower(Flavor )) Azokat a rekordokat adja vissza, ahol a "chocolate" szó az Íz névben jelenik meg, a nagybetűk és a kisbetűk függvényétől függetlenül. Filter alsóban.
Filter(IceCream, Quantity < 10 && OnOrder < 20) Visszaadja azokat a rekordokat, ahol a Mennyiség kisebb, mint 10 és a Rendelés kisebb, mint 20. Ezeknek a feltételeknek egy rekord sem felel meg, így a függvény üres táblát ad vissza. Filter mennyiségre.
Search(IceCream, "choc", Flavor) Olyan rekordokat ad vissza, ahol a "choc" sztring az Íznévben jelenik meg, a nagybetűk és a kisbetűk számától függetlenül. Search Elemek.
Search(IceCream, "", Flavor) Mivel a keresési kifejezés üres, ez a függvény minden rekordot visszaad. Search minden elemhez.
LookUp(IceCream, Flavor = "Chocolate", Quantity) Olyan rekordot keres, amelynek Íze "Chocolate" értékű, amelyből van egy. Az első megtalált rekordnak visszaadja a Mennyiség értékét. 100
LookUp(IceCream, Quantity > 150, Quantity + OnOrder) Olyan rekordot keres, ahol a Mennyiség nagyobb, mint 150; több ilyen is található. A talált első rekordnál, amely "Vanilla" Flavor, a Quantity és az OnOrder oszlopok összegét adja vissza. 250
LookUp(IceCream, Flavor = "Pistachio", OnOrder) Olyan rekordot keres, amelynek íze "Pistachio", amelynek nincs értéke. Mivel nem található ilyen, a LookUp egy üres eredményt ad vissza. üres
LookUp(IceCream, Flavor = "Vanilla") Olyan rekordot keres, amelynek Íze "Vanilla" értékű, amelyből van egy. Mivel nem lett megadva csökkentési képlet, a függvény az egész rekordot visszaadja. { Flavor: "Vanilla", Quantity: 200, OnOrder: 75 }

Szűrés választási oszlopokkal

Az alábbi példa a Microsoft Dataverse Partner tábláját használja adatforrásként. Ez a példa bemutatja, hogyan listázhatja Filter a fiókokat a kijelölt kombinált lista vezérlőelem-értékek alapján:

Lépésről lépésre

  1. Üres alkalmazás megnyitása.

  2. Vegyen fel egy új képernyőt az Új képernyő lehetőség kiválasztásával.

  3. A Beszúrás lapon válassza a Katalógus, majd a Vízszintes lehetőséget.

  4. A jobb oldali ablaktábla Tulajdonságok lapján nyissa meg az Adatforrás elemet majd válassza a Partnerek lehetőséget.

  5. (Nem kötelező) Az Elrendezés listában válasszon különböző beállításokat.

  6. A Beszúrás lapon válassza a Bemenet, majd a Kombinált lista lehetőséget. Ismételje meg a lépést két további kombináltlista-vezérlő hozzáadásához.

  7. Minden egyes kombináltlista-vezérlőhöz a jobb oldali ablaktábla Tulajdonságok lapján nyissa meg az Adatforrás elemet majd válassza a Partnerek lehetőséget. Válassza a Szerkesztés lehetőséget a Mezők mellett, majd jelölje ki az Elsődleges szöveg és a SearchField értékeket. Az Elsődleges szövegnek a kombinált listához hozzáadni kívánt választási lehetőségek oszlopának kell lennie. Ismételje meg a lépést a további kombináltlista-vezérlőkhöz.

    A kombinált lista értékeinek beállítása.

  8. A Katalógus vezérlőelemben állítsa a Cikkek tulajdonságot a következő képletre:

    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'))
    

    Fiókok adatforrás.

Search felhasználói élmény

A következő példák a Jégkrémadatforrást használják:

Sok alkalmazásban ha karaktereket ír be a keresőmezőbe, azzal szűrni tudja a nagy adatkészletek rekordjainak listáját. A karakterek begépelésével a lista egyre rövidebb lesz, és csak azok a rekordok jelennek meg, amelyek megfelelnek a keresési feltételnek.

A cikk további részében található példák a következő adatokat tartalmazó Ügyfelek nevűlistában való keresés eredményeit mutatják be:

Search az ügyfelekre.

Ha ezt az adatforrást szeretné létrehozni gyűjteményként, akkor hozzon létre egy Gomb vezérlőelemet, és az OnSelect tulajdonság értékeként adja meg a következő képletet:

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" }) )

Ahogy a példában is látható, megjeleníthet egy rekordlistát egy Katalógus vezérlőelemben a képernyő alján. A képernyő tetején felvehet egy Szövegbevitel vezérlőelemet, SearchInput (Keresés bemenete) névvel, így a felhasználók megadhatják, hogy milyen rekordok érdeklik őket.

Search a keresési bemenet használatával.

Ahogy a felhasználó karaktereket gépel a SearchInput mezőbe, a rendszer automatikusan szűri a katalógus eredményeit. Ebben az esetben a katalógus úgy lett konfigurálva, hogy megjelenítse azon rekordokat, ahol a felhasználó neve (nem a vállalat neve) a SearchInput mezőben megadott karakterlánccal kezdődik. Ha a felhasználó begépeli a co karaktereket a keresőmezőbe, a katalógus a következő eredményeket jeleníti meg:

Search az elsővel kezdődik.

A Name (Név) oszlop alapján történő szűréshez a katalógus vezérlőelem Elemek tulajdonságának értékeként adja meg a következő képletek valamelyikét:

Formula Description Result
Filter(Ügyfelek, StartsWith(Név, SearchInput.Text) ) Kiszűri a Customers (Ügyfelek) adatforrásból azon rekordokat, ahol a keresési sztring szerepel a Name (Név) oszlop elején. A teszt nem különbözteti meg a kis- és nagybetűket. Ha a felhasználó begépeli a co karaktereket a keresőmezőbe, a katalógusban megjelenik Colleen Jones és Cole Miller. Mike Collins nem jelenik meg a katalógusban, mivel a rekord Name (Név) oszlopának nem az elején szerepel a keresési sztring. Filter kezdjük ezzel.
Filter(Ügyfelek, SearchInput.Text in Name) Kiszűri a Customers (Ügyfelek) adatforrásból azon rekordokat, ahol a keresési sztring a Name (Név) oszlopban bárhol szerepel. A teszt nem különbözteti meg a kis- és nagybetűket. Ha a felhasználó begépeli a co karaktereket a keresőmezőbe, a katalógusban megjelenik Colleen Jones,Cole Miller és Mike Collins is, mivel a keresési sztring mindegyik rekord esetében szerepel valahol a Name (Név) oszlopban. Filter keresési bemenettel.
Search(Ügyfelek, SearchInput.Text, Név) Az in operátorhoz hasonlóan a Search függvény az egyes rekordok Név oszlopában bárhol keres egyezést. Vegye figyelembe, hogy az oszlop nevét dupla idézőjelbe kell tenni. Search Ügyfelek.

Kiterjesztheti a keresést úgy, hogy a Vállalat és a Név oszlopban is keressen:

Formula Description Result
Filter(Customers, StartsWith(Name, SearchInput.Text) || StartsWith(Company, SearchInput.Text) ) Kiszűri a Customers (Ügyfelek) adatforrásból azon rekordokat, ahol a keresési sztring (például co) szerepel akár a Name (Név), akár a Company (Vállalat) oszlop elején. Az || operátor akkor true, ha bármelyik StartsWith függvény true. Filter ügyfelek kezdjenek.
Filter(Customers, SearchInput.Text in Name || SearchInput. Text in Company) Kiszűri a Customers (Ügyfelek) adatforrásból azon rekordokat, ahol a keresési sztring (például co) bárhol szerepel akár a Name (Név), akár a Company (Vállalat) oszlopban. Filter az ügyfelek a bemenetet keresik.
Search(Customers, SearchInput.Text, Name, Company) Az in operátorhoz hasonlóan a függvény megkeresi az SearchÜgyfelek adatforrásában azokat a rekordokat, amelyekben a Név oszlop vagy a Cég oszlop tartalmazza a keresési sztringet (például co) a benne található helyen. A Search függvény könnyebben olvasható és írható, mint Filter ha több oszlopot és több operátort szeretne megadni. Search keresési bemenettel rendelkező ügyfelek számára.