Filter, Search ve LookUp işlevleri
Şunlar için geçerlidir: Tuval uygulamaları Masaüstü akışları Model yönetimli uygulamalar Power Pages Power Platform CLI
Tablo içinde bir veya daha fazla kayıt bulur.
Filter, **Search ve LookUp işlevlerinin nasıl kullanılacağını öğrenmek için bu videoyu izleyin:
Not
PAC, CLI, pac, power-fx komutları , Arama işlevini desteklemez.
Description
Filter işlevi, tabloda bir formülü karşılayan kayıtları bulur. Bir veya daha fazla ölçüt ile eşleşen bir kayıt kümesi bulmak ve eşleşmeyen kayıtları atmak için Filter işlevini kullanın.
LookUp işlevi, tabloda bir formülü karşılayan ilk kaydı bulur. Bir veya daha fazla ölçütle eşleşen tek bir kaydı bulmak için LookUp işlevini kullanın.
Her iki işlevde de formül, tablodaki her bir kayıt için değerlendirilir. true olarak sonuçlanan kayıtlar sonuca dahil edilir. Normal formül işleçlerinin yanı sıra alt dize eşleşmeleri için in ve exactin işleçlerini kullanabilirsiniz.
İşlenmekte olan kayıt alanları formül içinde bulunur. ThisRecord işlecini kullanın veya başka bir değere olduğu gibi yalnızca adla başvuruda bulunun. As işleci, formülünüzü daha anlaşılır ve iç içe geçmiş kayıtları erişilebilir hale getirmenizi kolaylaştıracak şekilde, işlenen kaydı adlandırmak için de kullanılabilir. Daha fazla bilgi için aşağıdaki örneklere ve kayıt kapsamıyla çalışma bölümüne bakın.
Search işlevi, sütunlarından birinde dize içeren bir tablodaki kayıtları bulur. Dize, sütundaki herhangi bir yerde olabilir. Örneğin, "rob" veya "bert" sözcüklerini aratmak "Robert" öğesini içeren bir sütunda eşleşme bulabilir. Arama büyük/küçük harfe duyarlı değildir. Filter ve LookUp işlevlerinin aksine Search işlevi, eşleme için bir formül yerine tek bir dize kullanır.
Filtre Uygula ve Ara , özgün tabloyla aynı sütunları ve ölçütle eşleşen kayıtları içeren bir tablo döndürür. LookUp , kaydı tek bir değere indirgemek için bir formül uyguladıktan sonra yalnızca bulunan ilk kaydı döndürür. Hiçbir kayıt bulunmazsa Filter ve Search işlevleri boş bir tablo, LookUp işlevi ise boş değer döndürür.
Tablolar , tıpkı bir dize veya sayı gibi bir değerdir Power Apps. Tablolar, işlevlere geçirilebilir ve işlevlerden döndürülebilir. Filtre, Arama ve LookUp bir tabloyu değiştirmez. Bunun yerine, bir tabloyu bağımsız değişken olarak alır ve bundan bir tablo, kayıt veya tek bir değer döndürürler. Daha fazla ayrıntı için bkz. tablolarla çalışma.
Temsilci
Mümkünse, Power Apps isteğe bağlı olarak sonuçlar doğrultusunda filtreleri ve sıralama işlemlerini veri kaynağına ve sayfaya temsilci atar. Örneğin, verilerle dolu bir Galeri denetimi gösteren bir uygulama başlattığınızda, başlangıç olarak yalnızca ilk kayıt kümesi cihaza getirilir. Kullanıcı kaydırma yaptığında, veri kaynağından ek veriler getirilir. Sonuç olarak uygulama başlangıç süresi daha hızlı olur ve daha büyük veri kümelerine erişilir.
Ancak, temsilci atama her zaman mümkün olmayabilir. Veri kaynakları, temsilci atama ile destekledikleri işlevlere ve işleçlere göre farklılık gösterir. Formülün tam temsili mümkün değilse, yazma ortamı bir uyarıyla temsil edilemeyecek olan bölümü belirtir. Mümkünse, temsilci atanamayan işlevleri ve işleçleri önlemek için formülü değiştirebilirsiniz. Veri kaynaklarının ve işlemlerin temsilci atanabileceği temsil listesi ayrıntıları.
Temsilci atanması mümkün değilse, Power Apps yerel olarak çalışmak üzere kayıtların yalnızca küçük bir kümesini çeker. Filtreleme ve sıralama işlevleri azaltılmış kayıt kümesi üzerinde çalışır. Galeri'de bulunanlar hikayenin tamamı olmayabilir ve bu, kullanıcılar için karmaşık bir durum olabilir.
Daha fazla bilgi edinmek için bkz. temsilci atamaya genel bakış.
Sözdizimi
Filtre(Tablo*, Formül1 [, *Formül2*, ... ] )
- Tablo - Gerekli. Arama yapılacak tablo.
- Formüller - Gerekli. Tablodaki her bir kaydın değerlendirilmesinde kullanılan formül. İşlev, true olarak sonuçlanan tüm kayıtları döndürür. Tablodaki sütunlara başvurabilirsiniz. Birden fazla formül sağlarsanız tüm formüllerin sonuçları And işlevi ile birleştirilir.
Search(Table*, SearchString,Column1 [, *Column2*, ... ] )
- Tablo - Gerekli. Arama yapılacak tablo.
- SearchString - Gerekli. Aranacak dize. Boş değerindeyse veya boş bir dizeyse tüm kayıtlar döndürülür.
- Sütunlar - Gerekli. Tablo içinde arama yapılacak sütunların adları. AramaDizesi, söz konusu sütunların herhangi birindeki verilerde kısmi eşleşme olarak bulunursa kaydın tamamı döndürülür.
Not
3.24042 sürümünden önce Power Apps'te, Search işlevi için sütun adları çift tırnak kullanılarak metin dizesiyle belirtilirdi ve bir veri kaynağına bağlıysa bunların ayrıca mantıksal adlar olması da gerekiyordu. Örneğin, çift tırnaklı "cr43e_name" mantıksal adı, tırnaklar olmadan Ad görünen adının yerine kullanılıyordu. Boşluklar bulunan sütun adlarını içeren SharePoint ve Excel veri kaynakları için her boşluk, "_x0020_" ile belirtilirdi: Örneğin, "Sütun Adı", "Sütun_x0020_Adı" olarak. Bu sürümden sonra tüm uygulamalar bu makalede açıklanan yeni sözdizimi şeklinde otomatik olarak güncelleştirildi.
LookUp(Tablo*, Formül [, AzaltmaFormülü ] )
- Tablo - Gerekli. Arama yapılacak tablo. Kullanıcı arabiriminde sözdizimi, işlev kutusunun üstünde kaynak olarak gösterilir.
- Formül - Gerekli. Tablodaki her bir kaydın değerlendirilmesinde kullanılan formül. İşlev, true ile sonuçlanan ilk kaydı döndürür. Tablodaki sütunlara başvurabilirsiniz. Kullanıcı arabiriminde sözdizimi, işlev kutusunun üstünde koşul olarak gösterilir.
- ReductionFormula - İsteğe bağlı. Bu formül, bulunan kayıt üzerinden değerlendirilir ve ardından kaydı tek bir değere indirger. Tablodaki sütunlara başvurabilirsiniz. Bu parametreyi kullanmazsanız işlev, tablodaki kaydın tamamını döndürür. Kullanıcı arabiriminde sözdizimi, işlev kutusunun üstünde sonuç olarak gösterilir.
Örnekler
Aşağıdaki örneklerde IceCreamveri kaynağı kullanılmıştır:
Formül | Veri Akışı Açıklaması | Result |
---|---|---|
Filtre(Dondurma, Sipariş Üzerine > 0) | OnOrder'ın sıfırdan daha büyük olduğu kayıtları döndürür. | |
Filtre(Dondurma, Miktar + Sipariş > 225) | Quantity ve OnOrder sütunlarının toplamının 225'ten daha büyük olduğu kayıtları döndürür. | |
Filtre(Dondurma, "çikolata" Düşük(Lezzet)) | Büyük veya küçük harflerden bağımsız olarak Flavor adında "chocolate" kelimesinin göründüğü kayıtları döndürür. | |
Filtre (Dondurma, Miktar < 10 & Sipariş < 20) | Quantity'nin 10'dan ve OnOrder'ın 20'den daha az olduğu kayıtları döndürür. Bu ölçütlerle hiçbir kayıt eşleşmez, bu nedenle boş bir tablo döndürülür. | |
Arama(Dondurma, "çikolata", Lezzet) | Büyük veya küçük harflerden bağımsız olarak Flavor adında "choc" dizesinin göründüğü kayıtları döndürür. | |
Arama(Dondurma, "", Lezzet) | Arama terimi boş olduğundan tüm kayıtlar döndürülür. | |
LookUp(Dondurma, Lezzet = "Çikolata", Miktar) | Flavor'ın "Chocolate" değerinde olduğu kayıtları arar. (Bir kayıt vardır.) Bulunan ilk kayıt için kaydın Quantity öğesini döndürür. | Kategori 100 |
LookUp(Dondurma, Miktar > 150, Miktar + Sipariş) | Quantity değeri 150'den fazla olan kayıtları arar. (Birden çok kayıt vardır.) Bulunan ilk kayıt için ("Vanilla" Flavor) Quantity ve OnOrder sütunlarının toplamını döndürür. | 250 |
LookUp(Dondurma, Lezzet = "Antep Fıstığı", Sipariş) | Flavor'ın "Pistachio" değerinde olduğu kayıtları arar. (Hiç kayıt yoktur.) Hiçbir kayıt bulunamadığından Lookup işlevi boş değer döndürür. | boş |
LookUp(Dondurma, Lezzet = "Vanilya") | Flavor'ın "Vanilla" değerinde olduğu kayıtları arar. (Bir kayıt vardır.) Hiçbir indirgeme formülü sağlanmamış olduğundan kaydın tamamı döndürülür. | { Flavor: "Vanilla", Quantity: 200, OnOrder: 75 } |
Seçim sütunlarıyla filtreleme
Aşağıdaki örnek, Microsoft Dataverse'te Hesap tablosunu veri kaynağı olarak kullanır. Bu örnek, seçili Combo box denetim değerlerine göre hesap listesinin nasıl Filtreleneceğini gösterir:
Adım adım
Boş uygulamayı açın.
Yeni Ekran seçeneğini belirleyerek yeni bir ekran ekleyin.
Ekle sekmesinde, Galeri'yi ve ardından Dikey'i seçin.
Sağ bölmedeki Özellikler sekmesinde, Veri Kaynağı'nı açın ve Hesaplar'ı seçin.
(İsteğe bağlı) Düzen listesinde farklı seçenekler belirleyin.
Ekle sekmesinde, Giriş'i ve ardından Combo box'ı seçin. İki combo box denetimi daha eklemek için adımı yineleyin.
Her bir combo box denetimi için sağ bölmedeki Özellikler sekmesinde, Veri Kaynağı'nı açın ve Hesaplar'ı seçin. Alanlar seçeneğinin yanındaki Düzenle'yi seçin ve ardından Birincil metin ve SearchField değerlerini seçin. Birincil metin açılır kutusuna eklemek istediğiniz seçenekler sütunu olmalıdır. Diğer iki combo box denetimi için adımı yineleyin.
Gallery denetimini seçip Items özelliğini şu formül olarak ayarlayın:
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'))
Aramaya ilişkin kullanıcı deneyimi
Aşağıdaki örneklerde IceCreamveri kaynağı kullanılmıştır:
Birçok uygulamada, büyük bir veri kümesindeki bir kayıt listesini filtrelemek için arama kutusuna bir veya daha fazla karakter yazabilirsiniz. Siz yazarken liste yalnızca arama ölçütleri ile eşleşen kayıtları gösterir.
Bu makalenin geri kalan kısmındaki örneklerde, şu verileri içeren Müşteriler adlı listedeki arama sonuçları gösterilmektedir:
Bu veri kaynağını bir koleksiyon olarak oluşturmak için bir Button denetimi oluşturun ve OnSelect özelliğini şu formül olarak ayarlayın:
ClearCollect(Müşteriler, Tablo({ Ad: "Fred Garcia", Şirket: "Northwind Traders" }, { Adı: "Cole Miller", Şirket: "Contoso" }, { Ad: "Glenda Johnson", Şirket: "Contoso" }, { Ad: "Mike Collins", Şirket: "Adventure Works" }, { Ad: "Colleen Jones", Şirket: "Adventure Works" }) )
Bu örnekte olduğu gibi, ekranın alt kısmındaki bir Gallery denetimi ile kayıt listesi gösterebilirsiniz. Ekranın üst kısmına yakın bir konuma SearchInput adlı bir Text input denetimi ekleyebilirsiniz. Böylece, kullanıcılar hangi kayıtlarla ilgilendiklerini belirtebilir.
Kullanıcı, SearchInput denetiminde karakterler yazdıkça galerideki sonuçlar otomatik olarak filtrelenir. Bu durumda galeri, SearchInput kısmındaki karakter dizisiyle başlayan müşteri adı (şirket adı değil) için kayıtları göstermek üzere yapılandırılır. Kullanıcı arama kutusuna co yazarsa galeri şu sonuçları gösterir:
Name sütununa göre filtreleme yapmak için gallery denetiminin Items özelliğini şu formüllerden biri olarak ayarlayın:
Formül | Açıklama | Sonuç |
---|---|---|
Filter(Müşteriler, StartsWith(Ad, SearchInput.Text) ) | Arama dizesinin Name sütunun başında göründüğü kayıtlar için Customers veri kaynağını filtreler. Test, büyük/küçük harfe duyarlı değildir. Kullanıcı, arama kutusuna co yazarsa galeri, Colleen Jones ve Cole Miller öğelerini gösterir. Galeri, söz konusu kaydın Name sütunu arama dizesi ile başlamadığından Mike Collins öğesini göstermez. | |
Filter(Müşteriler, SearchInput.Text adında) | Arama dizesinin, Name sütununun herhangi bir yerinde göründüğü kayıtlar için Customers veri kaynağını filtreler. Test, büyük/küçük harfe duyarlı değildir. Kullanıcı, arama kutusuna co yazarsa galeri Colleen Jones, Cole Miller ve Mike Collins öğelerini gösterir. Bunun nedeni, bu kayıtların tümünün Name sütununda arama dizesinin görünmesidir. | |
Search(Müşteriler, SearchInput.Text, Ad) | in işlecinin kullanımına benzer şekilde, Search işlevi, her bir kayıttaki Name sütununun herhangi bir yerinde eşleşme arar. Sütun adının başında ve sonunda çift tırnak işareti kullanmanız gerekir. |
Aramanızı Name sütununun yanı sıra Company sütununu da dahil edecek şekilde genişletebilirsiniz:
Formül | Açıklama | Sonuç |
---|---|---|
Filter(Customers, StartsWith(Name, SearchInput.Text) || StartsWith(Şirket, SearchInput.Text) ) | Name veya Company sütununun arama dizesiyle (örneğin, co) başladığı kayıtlar için Customers veri kaynağını filtreler. StartsWith işlevi true ise || işleci true değerini taşır. | |
Filter(Müşteriler, SearchInput.Text adında || SearchInput'u seçin. Şirkette Metin) | Name veya Company sütununun herhangi bir yerinde arama dizesinin (örneğin, co) bulunduğu kayıtlar için Customer veri kaynağını filtreler. | |
Search(Müşteriler, SearchInput.Text, Ad, Şirket) | in işlecinin kullanımına benzer şekilde, Search işlevi, Name veya Company sütununun herhangi bir yerinde arama dizesinin (örneğin, co) bulunduğu kayıtlar için Customers veri kaynağını arar. Search işlevi, birden fazla sütun ve in işleci belirtmek istediğiniz durumlarda Filter işlevine göre daha kolay bir okuma ve yazma deneyimi sunar. |