Szűrési, keresési és keresési függvények

A következőkre vonatkozik: Vászonalapú alkalmazások Asztali folyamatok Modellvezérelt alkalmazások Power Platform CLI

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

Tekintse meg a Szűrés , a Keresés és **a Keresés függvény használatát bemutató videót:

Feljegyzés

A PAC CLI PAC POWER-FX parancsok nem támogatják a Keresés funkciót.

Description

A Filter függvény megkeresi egy adott tábla azon rekordjait, amelyek megfelelnek egy bizonyos képletnek. A Szűrő segítségével megkeresheti az egy vagy több feltételnek megfelelő rekordkészletet, és elvetheti azokat, amelyek nem.

A LookUp függvény megkeresi egy adott tábla első olyan rekordját, amely megfelel egy bizonyos képletnek. A LookUp használatával megkereshet egyetlen olyan rekordot, 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 megkeresi egy adott tábla azon rekordjait, amelyeknek az egyik oszlopában megtalálható egy bizonyos sztring. A karakterlánc bárhol előfordulhat az oszlopon belül; Ha például a "rob" vagy a "bert" kifejezésre keres, egyezést talál egy olyan oszlopban, amely tartalmazza a "Robert" szót. A keresés nem különbözteti meg a kis- és nagybetűket. A Filter és a LookUp függvénnyel ellentétben a Search nem képlet, hanem egyetlen sztring alapján keresi a találatokat.

A Filter és a Search olyan táblát ad vissza, amely az eredeti táblával egyező oszlopokat és a feltételeknek megfelelő rekordokat tartalmaz. A LookUp csak az első megtalált rekordot adja vissza, miután egy képlet alkalmazásával a rekordot egyetlen értékre csökkenti le. Ha nincsenek megfelelő rekordok, a Filter és a Searchüres táblát ad vissza, a LookUp pedig üres eredményt.

A táblák éppúgy értékek a Power Apps rendszerben, mint a sztringek vagy a számok. így függvények alapjául és eredményeként is szolgálhatnak. A Filter, a Search és a LookUp nem módosítja a táblákat. 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.

Meghatalmazá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. A szűrés és rendezés funkciók korlátozott bejegyzéshalmazon 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.

Szintaxis

Szűrő(Tábla*, Képlet1 [, *Képlet2*, ... ] )

  • Tábla – Kötelező megadni. A kereséshez használni kívánt tábla.
  • Képlet(ek) – 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. Ha több képletet ad meg, akkor a képletek eredményeit az And függvénnyel lehet kombinálni.

Keresés(Tábla*, SearchString, Oszlop1 [, *Oszlop2*, ... ] )

  • Tábla – Kötelező megadni. 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.
  • Oszlop(ok) – 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.

Feljegyzés

A Power Apps 3.24042-es verzió előtt a Search függvény oszlopneveit idézőjelbe tett szöveges karakterlánccal adtuk meg, és ha adatforrás-hez kapcsolódtak, logikai neveknek is kellett lenniük. Például a "cr43e_name" logikai nevet idézőjelek nélkül használtuk a megjelenítendő név Név idézőjelek nélkül. A szóközöket tartalmazó oszlopneveket tartalmazó Excel-adatforrások esetében SharePoint minden szóköz a "_x0020_" szóval lett megadva, például "Oszlopnév" mint "Column_x0020_Name". Ezt a verziót követően az összes alkalmazás automatikusan frissült a cikkben ismertetett új szintaxisra.

LookUp(Tábla*, Képlet [, *ReductionFormula* ] )

  • Tábla – Kötelező megadni. 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.
  • Formula – 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.
  • Csökkentési képlet – 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.

Képlet Description Result
Filter( Jégkrém, Rendelés > 0 ) Visszaadja azokat a rekordokat, ahol a Rendelés nagyobb, mint nulla. Szűrés Rendelésre.
Filter( Jégkrém, Mennyiség + Rendelés > 225 ) Visszaadja azokat a rekordokat, ahol a Mennyiség és a Rendelés oszlop összege nagyobb, mint 225. Mennyiség és rendelés szűrése.
Filter( Jégkrém, "csokoládé" in Lower( Íz ) ) Visszaadja azokat a rekordokat, ahol a „csokoládé” szó megjelenik a Íz névben, függetlenül a kis- és nagybetűktől. Szűrés lejjebb.
Szűrő(fagylalt, mennyiség < 10 && rendelésre < 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. Szűrés mennyiségre.
Keresés (Fagylalt, "choc", íz) Visszaadja azokat a rekordokat, ahol a „csok” sztring megjelenik az Íz névben, függetlenül a kis- és nagybetűktől. Elemek keresése.
Keresés (Fagylalt, "", íz) Mivel a keresési kifejezés üres, ez a függvény minden rekordot visszaad. Keresés az összes elem között.
LookUp( Jégkrém, Íz = "Csokoládé", Mennyiség ) Olyan rekordot keres, amelynek Flavor értéke megegyezik a "Chocolate" értékkel, amelyből van egy. Az első megtalált rekordnak visszaadja a Mennyiség értékét. 100
LookUp( Jégkrém, Mennyiség > 150, Mennyiség + Rendelés ) Olyan rekordot keres, ahol a Mennyiség nagyobb, mint 150; több ilyen is található. Az első megtalált rekordnál, ahol egyébként az Íz értéke „Vanília”, visszaadja a Mennyiség és az Rendelés oszlop értékeinek összegét. 250
LookUp( Jégkrém, Íz = "Pisztácia", Rendelés ) Olyan rekordot keres, ahol az Íz értéke „Pisztácia”; egy ilyen sem található. Mivel nem található ilyen, a LookUp egy üres eredményt ad vissza. üres
LookUp( Jégkrém, Íz = "Vanília" ) Olyan rekordot keres, amelynek Flavor értéke megegyezik a "Vanília" értékkel, amelyből van egy. Mivel nem lett megadva csökkentési képlet, a függvény az egész rekordot visszaadja. { Íz: "Vanília", Mennyiség: 200, Rendelés: 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 Szűrheti a partnerek listáját a kijelölt kombinált lista vezérlőé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.

Keresési 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:

Keressen ügyfeleket.

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.

Keresés 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:

A keresés ezzel 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:

Képlet Ismertetés Eredmény
Filter( Customers, StartsWith( Name, 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. Szűrés a kezdéssel.
Filter( Customers, 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. Szűrés keresési bemenettel.
Keresés(Ügyfelek, SearchInput.Text, Név) Az in operátor működéséhez hasonlóan a Search függvény az egyes rekordok Name (Név) mezőin belül bárhol keresi az egyezéseket. Vegye figyelembe, hogy az oszlop nevét dupla idézőjelbe kell tenni. Ügyfelek keresése.

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

Képlet Ismertetés Eredmény
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. Az ügyfelek szűrése ezzel kezdődik.
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. Szűrje az ügyfelek keresési bemenetét.
Keresés(Ügyfelek, SearchInput.Text, név, vállalat) Az in operátor működéséhez hasonlóan a Search függvény 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. A Search függvényt könnyebb olvasni és megírni, mint a Filter függvényt, ha több oszlopot és több in operátort szeretnénk megadni.  Ügyfelek keresése keresési bemenettel.