Aggregatelerde Dinamik Filtreleme Nasıl Yapılır?

Forumlar Service Studio Aggregatelerde Dinamik Filtreleme Nasıl Yapılır?

  • Post
    BAYPM
    Moderatör

    Bazen içinde birden fazla veri olan tablo, listelerle, grafiklerde veya sayfaların içerisinde bulunan verilerle çalışmamız gerekebiliyor. Bunlar içerisinde istediğimiz verileri bulmak her zaman istediğimiz kadar kolay olmayabiliyor. Tipi A olan veya içerisinde kullanıcı kelimesi geçen, 02.08.2022 Tarihinde eklemiş, A ve B aralığında olan, vb… verileri görmek istediğimizde her zaman yeni bir liste oluşturamayız. Bunu aggregatelerimize bazı filtreler ekleyerek kolayca gerçekleştirebiliyoruz.

    Filtrelerimizi oluşturmadan önce fazı işlemleri yapmamız gerekiyor. Öncelikle gerekli değişkenleri oluşturarak başlayabiliriz. Değişken olarak local variableları kullanabiliriz. Fakat eğer sayfayı yenileme, sayfaya geri dönme gibi işlemlerde bu filtrelerin kalmasını istiyorsak Client değişkenlerini eğer Traditional bir proje üzerinde çalışıyorsak Session değişkenlerini kullanabiliriz. Değişkenlerimiz veri tiplerini de aggragate içerisinde arama yapmaya uygun olacak şekilde ayarlamayıda unutmamalıyız.

    Değişkenlerimizi oluşturma işlemini tamamladıktan sonra değişkenlerimizi güncelleyebilmek ve kullanıcının kolayca arama yapabilmesi adına ekranımıza gerekli inputları eklememiz gerekiyor. Burada input, dropdown, range slider, checkbox gibi birçok form elementini kullanmamız mümkün.

    Eğer projemiz reactive bir proje ise arama işlemini gerçekleştirebilmek için yeni bir client action oluşturuyoruz. Bu action içerisinde eğer pagination var ise bunu sıfırlıyoruz ve aggregatemizi yeniliyoruz. Bu actionı tetiklemek için bir buton ekleyebilir veya inputların on changeleri içerisinde kullanabilirsiniz.

    Eğer Traditional bir proje üzerinde yapıyorsanız diğer işlemlere extra olarak ekrana bir buton eklemeniz yeterli olacaktır. Buton için bir server action oluşturuyorsunuz. Action içerisinde extra olarak bir şey eklemenize gerek yok. Eğer pagination kullanıyorsanız bunu sıfırlayacak bir kod ekleyebilirsiniz.

     

    Eğer range slider kullanıyorsak çalışabilmesi için On Change için yeni bir client action oluşturuyoruz ve içerisinde Assign blokunu kullanarak gerekli değişkene atıyoruz.

    Bu işlemleri bitirdikten sonra Aggregatemizi açabiliriz. Burada filtreler kısmına geliyoruz. Her bir inputumuz için birer filtre eklememiz gerekiyor.

    Her bir filtre için input boşsa veya koşul olacak şekilde doldurmamız gerekiyor. Bunun dışında string içeren inputlarda arama yaparken Like özelliğini kullanabiliriz. Bu özellik için genel kullanım “attribute like variable” şeklinde.

    Like özelliği için bazı kullanım örnekleri

    • Name like SearchKeyword+”%” : SearchKeyword ile başlayan verileri bulur
    • Name like “%”+SearchKeyword : SearchKeyword ile biten verileri bulur
    • Name like “%”+SearchKeyword+”%” : İçerisinde herhangi bir kısımda SearchKeyword geçen kelimeleri bulur
    • Name like “_”+SearchKeyword+”%” : 2. Karakteri SearchKeyword ile başlayan verileri bulur.
    • Name like SearchKeyword : Seachkeyword’a eşit olan verileri bulur. Bunun yerine “=” özelliğide kullanılabilir.

     

    Integer değere sahip inputlar için büyüktür (>), küçüktür(<), eşittir(=) veya eşit değildir(<>) özellikleri kullanılabilir. Eğer aggragateye tanımlı entitiye tanımlı başka bir entity ye ait verileri arıyorsak, Identifierlarının aynı olmasına dikkat etmeliyiz ve burada eşittir(=) ve eşit değildir(<>) özelliklerini kullanabiliriz. Checkbox veya Boolean olarak bir filtremeleme yapıyorsak False veya İstenen Query şeklinde girebiliriz. Bir diğer yöntem ise If() özelliği ile True ve False için ayrı Queryler tanımlamak.Bunun dışında diğer filtreler içerisinde de If() özelliğini kullanabilirsiniz.

    Tüm filtrelemizi tanımladından sonra sonraki işlem yazdığımız filtreleri test etmek olmalı. Inputlara değerleri girdiğinizde düzgün bir şekilde istediğiniz verileri elde ediyor iseniz filtreniz düzgün çalışıyordur.

     

  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.