Filter, Search ve LookUp işlevleri

Şunlar için geçerlidir: Tuval uygulamaları Masaüstü akışları Model temelli uygulamalar 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ı, Search 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şmeyenleri 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" kelimelerini 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.

Filter ve Search işlevleri, özgün tablodakilerle aynı sütunları ve ölçütlerle eşleşen kayıtları içeren bir tablo döndürür. LookUp işlevi, 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, Power Apps'te dize veya sayı gibi bir değerdir. Tablolar, işlevlere geçirilebilir ve işlevlerden döndürülebilir. Filter, Search ve LookUp işlevleri 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

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

  • 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ı. Arama yapılacak sütunların metin içermesi gerekir. Sütun adları dize olmalı; başlarında ve sonlarında çift tırnak işareti bulunmalıdır. Sütun adları aynı zamanda statik olmalıdır ve bir formül ile hesaplanamaz. 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

Boşluklu sütun adları içeren SharePoint ve Excel veri kaynakları için her bir boşluğu "_x0020_" olarak belirtin. Örneğin, "Sütun Adı" öğesini "Sütun_x0020_Adı" olarak belirtin.

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

  • 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:

IceCream veri kaynağı.

Formül Veri Akışı Açıklaması Result
Filter( IceCream, OnOrder > 0 ) OnOrder'ın sıfırdan daha büyük olduğu kayıtları döndürür. On order filtreleme.
Filter( IceCream, Quantity + OnOrder > 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. Miktarı ve siparişi filtreleme.
Filter( IceCream, "chocolate" in Lower( Flavor ) ) 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. Küçük harfle filtreleme.
Filter(IceCream, Quantity < 10 && OnOrder < 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. Miktarı filtreleme.
Search( IceCream, "choc", "Flavor" ) 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. Öğe arama.
Search( IceCream, "", "Flavor" ) Arama terimi boş olduğundan tüm kayıtlar döndürülür. Tüm öğeleri arama.
LookUp( IceCream, Flavor = "Chocolate", Quantity ) 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( IceCream, Quantity > 150, Quantity + OnOrder ) 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( IceCream, Flavor = "Pistachio", OnOrder ) 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. blank
LookUp( IceCream, Flavor = "Vanilla" ) 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

  1. Boş uygulamayı açın.

  2. Yeni Ekran seçeneğini belirleyerek yeni bir ekran ekleyin.

  3. Ekle sekmesinde, Galeri'yi ve ardından Dikey'i seçin.

  4. Sağ bölmedeki Özellikler sekmesinde, Veri Kaynağı'nı açın ve Hesaplar'ı seçin.

  5. (İsteğe bağlı) Düzen listesinde farklı seçenekler belirleyin.

  6. Ekle sekmesinde, Giriş'i ve ardından Combo box'ı seçin. İki combo box denetimi daha eklemek için adımı yineleyin.

  7. 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.

    Açılır kutu değerlerini ayarlama.

  8. Gallery denetimini seçip Items özelliğini şu formül olarak ayarlayın:

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

    Firma veri kaynağı.

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 konu başlığının geri kalan kısmındaki örneklerde, şu verileri içeren Müşteriler adlı listedeki arama sonuçları gösterilmektedir:

Müşteri arama.

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

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.

Arama girişi kullanarak arama.

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:

Şununla başlar ile arama.

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( Customers, StartsWith( Name, 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. Şununla başlar ile filtreleme.
Filter( Customers, SearchInput.Text in Name ) 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. Arama girişiyle filtreleme.
Search( Customers, SearchInput.Text, "Name" ) 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. Müşteri arama.

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( Company, 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şlecitrue değerini taşır. Şununla başlayan müşterileri filtreleme.
Filter( Customers, SearchInput.Text in Name || SearchInput.Text in Company ) Name veya Company sütununun herhangi bir yerinde arama dizesinin (örneğin, co) bulunduğu kayıtlar için Customer veri kaynağını filtreler. Müşterileri arama girişiyle filtreleme.
Search( Customers, SearchInput.Text, "Name", "Company" ) 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. Sütun adının başında ve sonunda çift tırnak işareti kullanmanız gerekir. Müşterileri arama girişi ile arama.