Filtrēšanas, meklēšanas un uzmeklēšanas funkcijas

Attiecas uz: Audekla programmām Darbvirsmas plūsmas Modeļa vadītas programmas Power Platform CLI

Atrod vienu vai vairākus ierakstustabulā.

Noskatieties šo videoklipu, lai uzzinātu, kā izmantot filtrēšanas, meklēšanas un uzmeklēšanas funkcijas:

Piezīmes

PAC CLI pac power-fx komandas neatbalsta meklēšanas funkciju.

Apraksts

Funkcija Filter atrod ierakstus tabulā, kura atbilst formulai. Izmantojiet funkciju Filter, lai atrastu ierakstu kopu, kas atbilst vienam vai vairākiem kritērijiem un noraidīt kopas, kuras neatbilst.

Funkcija LookUp atrod pirmo ierakstu tabulā, kas atbilst formulai. Izmantojiet funkciju LookUp, lai atrastu vienu ierakstu, kas atbilst vienam vai vairākiem kritērijiem.

Abos gadījumos formula tiek novērtēta katram tabulas ierakstam. Rezultātā tiek iekļauti ieraksti, kas rada vērtības true. Līdztekus normāliem formula operatoriem, varat izmantot operatorus in un exactin attiecībā uz apakšvirkņu atbilstībām.

Formulā ir pieejami pašlaik apstrādātie ieraksta lauki. Izmantojiet operatoru ThisRecord vai vienkārši norādiet uz laukiem pēc nosaukuma, kā to darītu ar jebkuru citu vērtību. Operatoru As var izmantot arī, lai apstrādājamajam ierakstam piešķirtu nosaukumu, kas var palīdzēt padarīt formulu saprotamāku, bet ligzdotos ierakstus — pieejamus. Papildinformāciju skatiet tālāk sniegtajos piemēros un sadaļā Darbs ar ierakstu tvērumu.

Funkcija Search meklē ierakstus tabulā, kas satur virkni vienā no to kolonnām. Virkne var rasties jebkurā vietā kolonnā; piemēram, meklējot "rob" vai "bert", tiek atrasta atbilstība kolonnā, kura satur "Roberts". Meklēšana ir reģistrnejutīga. Atšķirībā no funkcijām Filter un LookUp, funkcija Search izmanto vienu virkni atbilstībai, nevis formulu.

Funkcija Filter un Search atgriež tabulu, kurā ir tādas pašas kolonnas kā sākotnējā tabulā un ierakstos, kuri atbilst kritērijiem. Funkcija LookUp atgriež tikai pirmo atrasto ierakstu pēc formulas piemērošanu, lai samazinātu ierakstu līdz vienai vērtībai. Ja netiek atrasti ieraksti, funkcija Filter un Search atgriež tukšu tabulu un funkcija LookUp atgriež tukšu vērtību.

Tabulas ir vērtība pakalpojumā Power Apps, tāpat kā virkne vai skaitlis. Tās var nodot funkcijām un atgriezt no tām. Funkcijas Filter, Search un LookUp nemodificē tabulu. Tā vietās tās pieņem tabulu par argumentu un no tās atgriež tabulu, ierakstu vai vienu vērtību. Papildinformāciju skatiet tēmā Darbs ar tabulām

Deleģēšana

Ja tas būs iespējams, risinājums Power Apps deleģēs filtru un kārtos darbības pēc datu avota un lapas, izmantojot rezultātus pēc pieprasījuma. Piemēram, ja startēsit programmu, kurā būs redzama vadīkla Galerija, kas ir aizpildīta ar datiem, ierīcei sākotnēji tiks nodrošināta tikai pirmā ierakstu kopa. Lai skatītu papildu datu avota datus, lietotājam ir jāritina. Tādējādi programma tiek ātrāk startēta, kā arī var ātrāk piekļūt apjomīgām datu kopām.

Tomēr deleģēšana ne vienmēr var būt iespējama. Datu avoti ir atkarīgi no tā, kādas funkcijas un operatori tiek atbalstīti deleģēšanas rezultātā. Ja pilnīga formulas deleģēšana nav iespējama, autorēšanas vidē tiks atzīmēta tā daļa, kuru nevar deleģēt. Ja iespējams, ieteicams mainīt formulu tā, lai izvairītos no funkcijām un operatoriem, ko nevar deleģēt. Deleģēšanas sarakstā ir norādīti deleģējamie datu avoti un darbības.

Ja deleģēšana nav iespējama, risinājums Power Apps raks tikai nelielu ierakstu kopu, ko varēs izmantot lokālam darbam. Filtra un kārtošanas funkcijas darbosies, izmantojot samazinātu ierakstu kopu. Galerijā var nebūt pieejams visa ierakstu kopa, kas lietotājiem varētu šķist mulsinoši.

Papildinformāciju skatiet sadaļā Pārskats par deleģēšanu.

Sintakse

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

  • Tabula — Obligāti. Meklējamā tabula.
  • Formula(s) — Obligāti. Formula, pēc kuras tiek vērtēts katrs tabulas ieraksts. Funkcija atgriež visus ierakstus ar rezultātu true. Tabulā var norādīt atsauces uz kolonnām. Ja nodrošināt vairāk nekā vienu formulu, visu formulu rezultāti tiek apvienoti ar funkciju And.

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

  • Tabula — Obligāti. Meklējamā tabula.
  • SearchString — Obligāti. Virkne, kuru meklēt. Ja ir tukša vērtība vai tukša virkne, tiek atgriezti visi ieraksti.
  • Kolonna(s) – Obligāti. Tabulā esošie nosaukumi, kurus meklēt. Kolonnās, kuras meklēt, ir jābūt tekstam. Kolonnu nosaukumiem ir jābūt virknēm un ietvertiem pēdiņās. Taču kolonnu nosaukumiem jābūt statiskiem, un tos nevar aprēķināt, izmantojot formulu. Ja jebkuras no šo kolonnu datiem tiek atrasta SearchString kā daļēja atbilstība, tiek atgriezts pilns ieraksts.

Note

SharePoint un Excel datu avotos, kuros ir kolonnu nosaukumi ar atstarpēm, norādiet katru atstarpi kā "_x0020_". Piemēram, norādiet Kolonnas nosaukumu"Column_x0020_Name".

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

  • Tabula — Obligāti. Meklējamā tabula. Lietotāja interfeisā sintaksi rāda kā avotu virs funkciju lodziņa.
  • Formula — Obligāti. Formula, pēc kuras tiek vērtēts katrs tabulas ieraksts. Funkcija atgriež pirmo ierakstu ar rezultātu true. Tabulā var norādīt atsauces uz kolonnām. Lietotāja interfeisā sintaksi rāda kā nosacījumu virs funkciju lodziņa.
  • ReductionFormula — Neobligāti. Šī formula tiek izvērtēta ar atrasto ierakstu, un pēc tam samazina ierakstu līdz vienai vērtībai. Tabulā var norādīt atsauces uz kolonnām. Ja nelietojat šo parametru, funkcija no tabulas atgriež pilnu ierakstu. Lietotāja interfeisā sintaksi rāda kā rezultātu virs funkciju lodziņa.

Piemēri

Piemērā lietots IceCreamdatu avots:

Saldējums datu avots.

Formula Apraksts Rezultāts
Filter( IceCream, OnOrder > 0 ) Atgriež ierakstus, kuros OnOrder ir lielāks par nulli. Filtrēt pēc pasūtījuma.
Filter( IceCream, Quantity + OnOrder > 225 ) Atgriež ierakstos, kuros kolonnu Daudzums un OnOrder summa ir lielāka par 225. Filtrējiet daudzumu un pasūtījumu.
Filter( IceCream, "chocolate" in Lower( Flavor ) ) Atgriež ierakstus, kuros vārds "šokolāde" tiek parādīta nosaukumā Garša, neatkarīgi no lielajiem vai mazajiem burtiem. Filtrējiet zemāk.
Filtrs(IceCream, daudzums < 10 & OnOrder < 20) Atgriež ierakstus, kuros Daudzums ir mazāks par 10 un OnOrder ir mazāks par 20. Šiem kritērijiem neatbilst neviens ieraksts, tāpēc tiek atgriezta arī tukša tabula. Filtrējiet pēc daudzuma.
Search( IceCream, "choc", "Flavor" ) Atgriež ierakstus, kuros virkne "choc" tiek parādīta nosaukumā Garša, neatkarīgi no lielajiem vai mazajiem burtiem. Meklēt vienumus.
Meklēt ( IceCream, "", "Garša" ) Tā kā meklējamais termins ir tukšs, tiek atgriezti visi ieraksti. Meklēt visus vienumus.
LookUp( IceCream, Garša = "Šokolādes", Daudzums ) Meklē ierakstu, kura Garša ir vienāda ar "Šokolādes", no kuriem ir viens. Pirmajam atrastajam ierakstam tiek atgriezts šī ieraksta Daudzums. 100
LookUp( IceCream, Quantity > 150, Quantity + OnOrder ) Meklē ierakstu, kura Daudzums ir lielāks par 150, kādi ir vairāki. Pirmajam atrastajam ierakstam, kas ir "Vaniļas" Garša, atgriež Daudzuma un OnOrder kolonnu summu. 250
LookUp( IceCream, Garša = "Pistāciju", OnOrder ) Meklē ierakstu, kura Garša ir vienāda ar "Pistāciju", kādu nav. Tā kā neviens nav atrasts, Uzmeklēšana atgriež tukšu. tukšs
LookUp( IceCream, Garša = "Vaniļas" ) Meklē ierakstu, kura Garša ir vienāda ar "Vaniļas", kas ir viens. Tā kā netika nodrošināta samazināšanas formula, tika atgriezts viss ieraksts. { Garša: "Vaniļas", Daudzums: 200, OnOrder: 75 }

Filtrēšana, izmantojot izvēļu kolonnas

Šajā piemērā entītija Uzņēmums tiek izmantota programmā Microsoft Dataverse kā datu avots. Šajā piemērā parādīts, kā filtrēt uzņēmumu sarakstu, pamatojoties uz atlasītajām kombinētā lodziņa vadīklas vērtībām:

Pakāpeniskas darbības

  1. Atveriet tukšu programmu.

  2. Pievienojiet jaunu ekrānu, atlasot opciju Jauns ekrāns.

  3. Cilnē Ievietot atlasiet Galerija un pēc tam atlasiet Vertikāli.

  4. Labās puses rūts cilnē Rekvizīti atveriet Datu avots un atlasiet Uzņēmumi.

  5. (Nav obligāti) Izkārtojuma sarakstā atlasiet citas opcijas.

  6. Cilnē Ievietot atlasiet Ievade un pēc tam atlasiet Kombinētais lodziņš. Atkārtojiet šo darbību, lai pievienotu vēl divas kombinētā lodziņa vadīklas.

  7. Labās puses rūts cilnē Rekvizīti atveriet Datu avots un atlasiet Uzņēmumi. Atlasiet opciju Rediģēt pie Lauki un pēc tam atlasiet vērtības Primārais teksts un SearchField. Primārajam tekstam ir jābūt izvēļu kolonnai, ko vēlaties pievienot kombinētajam lodziņam. Atkārtojiet šo darbību, lai pievienotu vēl divas kombinētā lodziņa vadīklas.

    Kombinētā lodziņa vērtību iestatīšana.

  8. Tagad atlasiet vadīklu Galerija un iestatiet rekvizītam Elementi šādu formulu:

    Filter(Accounts,
     'Industry' = ComboBox3.Selected.Industry||IsBlank(ComboBox3.Selected.Industry),
     'Relationship Type' = ComboBox2.Selected.'Relationship Type'||
     IsBlank(ComboBox2.Selected.'Relationship Type'),
     'Preferred Method of Contact' = ComboBox1.Selected.'Preferred Method of Contact'||
     IsBlank(ComboBox1.Selected.'Preferred Method of Contact'))
    

    Konti datu avots.

Meklēšanas lietotāja pieredze

Piemērā lietots IceCreamdatu avots:

Daudzās programmās varat meklēšanas lodziņā ievadīt vienu vai vairākas rakstzīmes, lai lielā datu kopā filtrētu ierakstu sarakstu. Rakstīšanas laikā saraksts rāda tikai tos ierakstus, kuri atbilst meklēšanas kritērijiem.

Pārējās šīs tēmas piemēros ir sniegti saraksta meklēšanas rezultāti ar nosaukumu Klienti, kas satur šādus datus:

Meklēt pēc klientiem.

Lai izveidotu šo datu avotu kā kolekciju, izveidojiet vadīklu Button un iestatiet tās rekvizītu OnSelect uz šo formulu:

ClearCollect(klienti, tabula({vārds: "Aldis Garais", uzņēmums: "Northwind Traders", }{vārds: "Kalvis Millers", uzņēmums: "Contoso" }, { vārds: "Gita Jansone", uzņēmums: "Contoso" }, { vārds: Miks Celmiņš", uzņēmums: "Adventure Works"}, { vārds: "Karīna Jansone", nosaukums: "Adventure Works" }) )

Kā tas ir šajā piemērā, jūs varat rādīt ierakstu sarakstu Galerijas vadīklā ekrāna lejasdaļā. Netālu no ekrāna augšpuses varat pievienot Teksta ievades vadīklu ar nosaukumu SearchInput, lai lietotāji varētu konkretizēt sev interesējošos ierakstus.

Meklēšana, izmantojot meklēšanas ievadi.

Lietotājam rakstot rakstzīmes vadīklā SearchInput, rezultāti galerijā tiek automātiski filtrēti. Šajā gadījumā galerija tiek konfigurēta, lai rādītu ierakstus, kuriem klienta vārds (nevis uzņēmuma nosaukums) sākas ar rakstzīmju secību SearchInput. Ja lietotājs meklēšanas lodziņā ievada co, galerija rāda šādus rezultātus:

Meklēt ar sākas ar.

Lai filtrētu, pamatojoties uz kolonnu Vārds, iestatiet galerijas vadīklas rekvizītu Elementi uz vienu no šīm formulām:

Formula Apraksts Rezultāts
Filter( Customers, StartsWith( Name, SearchInput.Text ) ) Filtrē, vai datu avotā Customers nav ierakstu, kuros meklēšanas virkne parādās kolonnas Vārds sākumā. Pārbaude ir reģistrnejutīga. Ja lietotājs meklēšanas lodziņā ieraksta co, galerija rāda Colleen Jones un Cole Miller. Galerija nerāda Mike Collins, jo Vārda kolonna šim ierakstam nesākas ar meklēšanas virkni. Filtrējiet ar sākuma ar.
Filtrs( Klienti, SearchInput.Text nosaukumā ) Filtrē, vai datu avotā Klienti nav ierakstu, kuros meklēšanas virkne parādās jebkur kolonnā Nosaukums. Pārbaude ir reģistrnejutīga. Ja lietotājs meklēšanas lodziņā ievada co, galerija rāda Colleen Jones, Cole Miller un Mike Collins, jo meklēšanas virkne parādās kādā vietā visu šo ierakstu kolonnā Vārds. Filtrēt ar meklēšanas ievadi.
Meklēt( Klienti, SearchInput.Text, "Name" ) Līdzīgi kā izmantojot operatoru in, Meklēšanas funkcija meklē atbilstību jebkur katra ieraksta kolonnā Nosaukums. Kolonnas nosaukums ir jāiekļauj pēdiņās. Meklējiet klientus.

Varat izvērst meklēšanu, iekļaujot kolonnu Uzņēmums un kolonnu Nosaukums:

Formula Apraksts Rezultāts
Filter(Customers, StartsWith(Name, SearchInput.Text) || StartsWith(Company, SearchInput.Text) ) Filtrē datu avotu Klienti, lai atrastu ierakstus, kuros gan kolonna Vārds, gan kolonna Uzņēmums, sākas ar meklēšanas virkni (piemēram, co). || operators ir true, ja jebkura no StartsWith funkcijām ir true. Filtrēt klientus sāk ar.
Filter(Customers, SearchInput.Text in Name || SearchInput. Text in Company) Filtrē Klienti datu avotu, lai atrastu ierakstus, kuros kolonna Nosaukums vai kolonna Uzņēmums, satur meklēšanas virkni (piemēram, co) jebkur kolonnā. Filtrējiet klientu meklēšanas ievadi.
Meklēt( Klienti, SearchInput.Text, "Nosaukums", "Uzņēmums" ) Līdzīgi, kā izmantojot operatoru in, funkcija Search datu avotā Klienti meklē ierakstus kuros kolonna Vārds vai kolonna Uzņēmums satur meklēšanas virkni (piemēram co) jebkur kolonnā. Funkcija Search ir vieglāk lasāma un rakstāma nekā Filter, ja vēlaties konkretizēt vairākas kolonnas un vairākus in operatorus. Kolonnu nosaukumi ir jāiekļauj dubultajās pēdiņās.  Meklējiet klientus, izmantojot meklēšanas ievadi.