Notă
Accesul la această pagină necesită autorizare. Puteți încerca să vă conectați sau să modificați directoarele.
Accesul la această pagină necesită autorizare. Puteți încerca să modificați directoarele.
Se aplică la: Aplicații
pânză Copilot Studio
Desktop fluxuri
model aplicații bazate pe modele
Power Platform ClI
Dataverse funcții
Power Pages
Găsește una sau mai multe înregistrări într-un tabel.
Urmăriți acest videoclip pentru a afla cum să utilizați Filter, Searchși LookUp funcții:
Notă
COMENZIle PAC CLI pac power-fx nu acceptă funcția Search .
Descriere
Funcția Filter găsește înregistrări într-un tabel care satisface o formulă. Se utilizează Filter pentru a găsi un set de înregistrări care se potrivesc cu unul sau mai multe criterii și pentru a renunța la înregistrările care nu.
Funcția LookUp găsește prima înregistrare dintr-un tabel care satisface o formulă. Se utilizează LookUp pentru a găsi o singură înregistrare care corespunde unuia sau mai multor criterii.
Pentru ambele, formula este evaluată pentru fiecare înregistrare a tabelului. Înregistrări care au ca rezultat true sunt incluse în rezultat. Pe lângă operatorii normali de formulă, puteți utiliza operatorii in și exactin pentru corespondențe de subșiruri.
Câmpurile înregistrării procesate în prezent sunt disponibile în cadrul formulei. Utilizați operatorul ThisRecord sau pur și simplu faceți referire la câmpuri după nume, așa cum ați face cu orice altă valoare. Operatorul Ca poate fi, de asemenea, utilizat pentru a denumi înregistrarea care este procesată, ceea ce poate face formula dvs. să fie mai ușor de înțeles și înregistrările imbricate să fie accesibile. Pentru informații suplimentare, consultați exemplele de mai jos și lucrul cu domeniul de aplicare al înregistrărilor.
Funcția Search găsește înregistrări într-un tabel care conține un șir într-una dintre coloanele lor. Șirul poate apărea oriunde în coloană; de exemplu, căutarea „rob” sau „bert” ar găsi o potrivire într-o coloană care conține „Robert”. Căutarea nu este sensibilă la litere mari și mici. Spre deosebire Filter de și LookUp, funcția Search utilizează un singur șir pentru a se potrivi în locul unei formule.
Filter și Search să returneze un tabel care conține aceleași coloane ca tabelul original și înregistrările care corespund criteriilor. LookUp returnează doar prima înregistrare găsită, după aplicarea unei formule pentru a reduce înregistrarea la o singură valoare. Dacă nu s-au găsit Filter înregistrări și Search returnează un tabel gol și LookUp returnează necompletat.
Tabelele sunt o valoare în Power Apps, la fel ca un șir sau un număr. Pot fi transmise și returnate din funcții. Filter, Searchși LookUp nu modificați un tabel. În schimb, ei iau un tabel ca argument și returnează un tabel, o înregistrare sau o singură valoare de aici. Pentru mai multe detalii, consultați lucrul cu tabele.
Delegare
Atunci când este posibil, Power Apps va delega operațiunile de filtrare și sortare către sursa de date și va pagina rezultatele la cerere. De exemplu, când porniți o aplicație care arată un control Galerie completat cu date, doar primul set de înregistrări va fi adus inițial pe dispozitiv. Pe măsură ce utilizatorul defilează, se aduc date suplimentare din sursa de date. Rezultatul este un timp de pornire mai rapid pentru aplicație și acces la seturi de date foarte mari.
Cu toate acestea, delegarea nu este posibilă întotdeauna. Sursele de date suportă diverse funcții și diverși operatori cu delegarea. Dacă delegarea completă a unei formule nu este posibilă, mediul de creare va semnala porțiunea care nu poate fi delegată cu un avertisment. Atunci când este posibil, schimbați formula pentru a evita funcțiile și operatorii care nu se pot delega. Lista de delegare prezintă sursele de date și operațiunile care se pot delega.
Dacă delegarea nu este posibilă, Power Apps va extrage doar un set mic de înregistrări la care să se lucreze local. Filter și funcțiile de sortare vor funcționa pe un set redus de înregistrări. Este posibil ca elementele disponibile în Galerie să nu reprezinte întreaga situație, lucru care-i poate deruta pe utilizatori.
Consultați prezentarea generală a delegării pentru mai multe informații.
Sintaxă
Filter(Tabel*, Formulă1 [, *Formulă2*, ... ] )
- Tabel - Obligatoriu. Tabel pentru căutare.
- Formule - Obligatoriu. Formula în funcție de care este evaluată fiecare înregistrare a tabelului. Funcția returnează toate înregistrările care au ca rezultat true. Puteți face referire la coloane din tabel. Dacă furnizați mai multe formule, rezultatele tuturor formulelor sunt combinate cu funcția And.
Search(Tabel*, CăutareString, Coloană1 [, *Coloană2*, ... ] )
- Tabel - Obligatoriu. Tabel pentru căutare.
- SearchString - Obligatoriu. Șir pentru căutare. Dacă există un șir necompletat sau un șir gol, toate înregistrările sunt returnate.
- Coloane - Obligatoriu. Numele coloanelor din Table pentru a căuta. Dacă SearchString se găsește în datele oricăreia dintre aceste coloane ca o corespondență parțială, înregistrarea completă va fi returnată.
Notă
În Power Apps înainte de versiunea 3.24042, numele de coloane pentru Search funcție au fost specificate cu un șir text utilizând ghilimele duble și dacă sunt conectate la o sursă de date, de asemenea, trebuie să fie nume logice. De exemplu, numele logic „cr43e_name” cu ghilimele duble a fost folosit în locul numelui afișat Nume fără ghilimele. Pentru sursele de date SharePoint și Excel care conțin nume de coloane cu spații, fiecare spațiu a fost specificat cu „_x0020_”, de exemplu „Column Name” as „Column_x0020_Name”. După această versiune, toate aplicațiile au fost actualizate automat la noua sintaxă descrisă în acest articol.
LookUp(Tabel*, Formulă [, *ReducereFormula* ] )
- Tabel - Obligatoriu. Tabel pentru căutare. În IU, sintaxa este prezentată ca sursă deasupra casetei de funcții.
- Formula - Obligatoriu. Formula în funcție de care este evaluată fiecare înregistrare a tabelului. Funcția returnează prima înregistrare care are ca rezultat true. Puteți face referire la coloane din tabel. În IU, sintaxa este prezentată ca o condiție deasupra casetei de funcții.
- ReductionFormula - Opțional. Această formulă este evaluată pe baza înregistrării care a fost găsită și apoi reduce înregistrarea la o singură valoare. Puteți face referire la coloane din tabel. Dacă nu utilizați acest parametru, funcția returnează înregistrarea completă din tabel. În IU, sintaxa este prezentată ca rezultat deasupra casetei de funcții.
Exemple
Următoarele exemple utilizează Înghețatăsursă de date:
| Formula | Descriere | Rezultat |
|---|---|---|
| Filter(IceCream, OnOrder > 0) | Returnează înregistrările unde OnOrder este mai mare decât zero. |
|
| Filter(IceCream, Cantitate + OnOrder > 225) | Returnează înregistrări în care suma aferentă pentru coloanele Cantitate și La comandă este mai mare de 225. |
|
| Filter(IceCream, "ciocolată" în Lower(Aroma )) | Returnează înregistrări în care apare cuvântul "ciocolată" apare în numele Aromă, independent de litere mari sau minuscule. |
|
| Filter(IceCream, Cantitate < 10 && OnOrder < 20) | Returnează înregistrările în care Cantitate este mai mică de 10 și La comandă este mai mică de 20. Nicio înregistrare nu corespunde acestor criterii, astfel încât este returnat un tabel gol. |
|
| Search(IceCream, "choc", Aroma) | Returnează înregistrări în care șirul "cioc" apare în numele Aromă, independent de litere mari sau minuscule. |
|
| Search(IceCream, "", Aroma) | Deoarece termenul de căutare este gol, toate înregistrările sunt returnate. |
|
| LookUp(IceCream, Aroma = "ciocolată", Cantitate) | Caută o înregistrare cu Aromă egal cu „Ciocolată”, dintre care există una. Pentru prima înregistrare găsită returnează Cantitate din acea înregistrare. | 100 |
| LookUp(IceCream, Cantitate > 150, Cantitate + OnOrder) | Căutări pentru o înregistrare cu Cantitate mai mare de 150, dintre care sunt multiple. Pentru prima înregistrare care a fost găsită, care este Aroma "Vanilie", returnează suma pentru coloanele Cantitate și La comandă. | 250 |
| LookUp(IceCream, Aroma = "Pistachio", OnOrder) | Căutări pentru o înregistrare cu Aromă egală cu "Fistic", dintre care nu există niciuna. Pentru că nu se găsește niciunul, Căutarea returnează necompletat. | necompletat |
| LookUp(IceCream, Aroma = "Vanilie") | Caută o înregistrare cu Aromă egal cu „Vanilie”, dintre care există una. Deoarece nu a fost furnizată o formulă de reducere, este returnată întreaga înregistrare. | { Aromă: "Vanilie", Cantitate: 200, La comandă: 75 } |
Filtrare cu coloane de alegere
Următorul exemplu folosește tabelul Cont în Microsoft Dataverse ca sursă de date. Acest exemplu vă arată cum să Filter listați conturile pe baza valorilor de control ale casetei combo selectate:
Pas cu pas
Deschideți o aplicație necompletată.
Adăugați un ecran nou selectând opțiunea Ecran nou.
Pe fila Inserare, selectați Galerie apoi selectați Vertical.
Pe fila Proprietăți a panoului din dreapta, deschideți Sursă de date și apoi selectați Conturi.
(Opțional) În lista Aspect selectați diferite opțiuni.
Pe fila Inserare, selectați Intrare apoi selectați Casetă combo. Repetați pasul pentru a adăuga încă două controale din caseta combo.
Pentru fiecare comandă de casetă combo, pe fila Proprietăți a panoului din dreapta, deschideți Sursă de date și apoi selectați Conturi. Selectați Editați chiar lângă opțiunea Câmpuri și apoi selectați valorile Text primar și SearchField. Text primar ar trebui să fie coloana de opțiuni pe care doriți să o adăugați în caseta combo. Repetați pasul pentru încă două controale din caseta combo.
Acum selectați controlul Galerie și setați proprietatea Elemente pentru următoarea formulă:
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'))
Search experiență utilizator
Următoarele exemple utilizează Înghețatăsursă de date:
În multe aplicații, puteți tasta unul sau mai multe caractere într-o casetă de căutare pentru a filtra o listă de înregistrări într-un set mare de date. Pe măsură ce tastați, lista afișează doar acele înregistrări care corespund criteriilor de căutare.
Exemplele din restul acestui articol arată rezultatele căutării într-o listă, denumită Clienți, care conține aceste date:
Pentru a crea această sursă de date ca o colecție, creați un control Button și setați proprietatea acestuia OnSelect conform următoarei formule:
ClearCollect(Clienți, Tabel({ Nume: „Fred Garcia”, Companie: „Comercianți Northwind” }, { Nume: „Cole Miller”, Companie: „Contoso” }, { Nume: „Glenda Johnson”, Companie: „Contoso” }, { Nume: „Mike Collins”, Companie: „Adventure Works” }, { Nume: „ Colleen Jones", Compania: "Adventure Works" }) )
După cum se arată în acest exemplu, puteți afișa o listă de înregistrări într-un Control galerie în partea de jos a unui ecran. În partea de sus a ecranului, puteți adăuga un control Introducere text, numit SearchInput, astfel încât utilizatorii să poată specifica ce înregistrări îi interesează.
Pe măsură ce utilizatorul tastează caractere în SearchInput, rezultatele din galerie sunt filtrate automat. În acest caz, galeria este configurată pentru a afișa înregistrări pentru care numele clientului (nu numele companiei) începe cu secvența de caractere din SearchInput. Dacă utilizatorul introduce co în caseta de căutare, galeria arată aceste rezultate:
Pentru a filtra pe baza coloanei Name, setați proprietatea Items a controlului galeriei la una dintre aceste formule:
| Formula | Descriere | Rezultat |
|---|---|---|
| Filter(Clienți, StartsWith(nume, SearchInput.Text) ) | Filtrează sursa de date Customers pentru înregistrări în care șirul de căutare apare la începutul coloanei Name. Testul nu este sensibil la literele mari și mici. Dacă utilizatorul tastează co în caseta de căutare, galeria afișează Colleen Jones și Cole Miller. Galeria nu afișează Mike Collins deoarece coloana Name pentru respectiva înregistrare nu începe cu șirul de căutare. |
|
| Filter(Customers, SearchInput.Text in Name) | Filtrează sursa de date Customers pentru înregistrări în care șirul de căutare apare oriunde în coloana Name. Testul nu este sensibil la literele mari și mici. Dacă utilizatorul tastează co în caseta de căutare, galeria afișează Colleen JonesCole Miller, și Mike Collins deoarece șirul de căutare apare într-o anumită parte a coloanei Name pentru toate acele înregistrări. |
|
| Search(Clienți, SearchInput.Text, Nume) | Similar cu utilizarea operatorului in , funcția Search caută o potrivire oriunde în coloana Nume a fiecărei înregistrări. Trebuie să încadrați numele coloanei între ghilimele duble. |
|
Puteți extinde căutarea pentru a include coloana Companie și coloana Nume:
| Formula | Descriere | Rezultat |
|---|---|---|
| Filter(Clienți, StartsWith(nume, SearchInput.Text) || StartsWith(Firmă, SearchInput.Text) ) | Filtrează sursa de date Customers pentru înregistrări în care coloana Name sau coloana Company începe cu șirul de căutare (de exemplu, co). || Operator este true dacă funcția StartsWith este true. |
|
| Filter(Customers, SearchInput.Text in Name || SearchInput. Text în firmă) | Filtrează sursa de date Customers pentru înregistrări în care coloana Name sau coloana Company conține șirul de căutare (de exemplu, co) oriunde în interior. |
|
| Search(Clienți, SearchInput.Text, Nume, Firmă) | Similar cu utilizarea operatorului in , Search funcția caută în sursa de date Clienți înregistrările în care fie coloana Nume , fie coloana Firmă conține șirul de căutare (de exemplu, co) oriunde în ea. Funcția Search este mai ușor de citit și de scris decât Filter dacă doriți să specificați mai multe coloane și mai multe în operatori. |
|