Skip to main content
Version: 1.0.1

handleAggregation

Açıklama: Bu fonksiyon, kullanıcı tarafından belirlenen toplama kriterlerini işleyerek API'ye gönderir ve gelen sonuçlarla tabloyu günceller.

Kod

handleAggregation(aggregations: ITableAggregations[], callback?: () => void) {
const requestData: IListRequest = {
...defaultParams,
aggregation: {
criterias: aggregations.map((agg) => {
return {
aggregateBy: agg.column,
type: agg.type,
};
}),
},
};

this.getdata(requestData, callback, callback);
}

Ne İşe Yarar?

  • Kullanıcının toplama işlemlerini işler ve API'ye gönderir.
  • API'den gelen toplama sonuçlarını tabloya uygular.

Parametreler

ParametreTipiAçıklama
aggregationsITableAggregations[]Kullanıcı tarafından belirlenen toplama kriterleri.
callback() => voidİşlem tamamlandığında çağrılacak opsiyonel fonksiyon.

Kullanım Alanları

1. AggregationPopover

  • Kullanım Amacı: Kullanıcı tarafından belirlenen toplama işlemlerini API'ye göndermek için çağrılır.
  • Kullanıldığı Yer: AggregationPopover bileşeninde.
handleAggregation(currentAggregations, () => setLoading(false));

2. OpsTableProvider

  • Kullanım Amacı: Tablo toplama işlemini desteklemek ve tabloyu güncellemek için çağrılır.
  • Kullanıldığı Fonksiyon: getdata
this.handleAggregation(activeAggregations);

İş Mantığı

  1. Kriterleri Dönüştürme:

    • Kullanıcının belirlediği toplama kriterleri, API'nin beklediği formata dönüştürülür.
    • Her kriter için aggregateBy ve type alanları ayarlanır.
  2. API Çağrısı:

    • getdata fonksiyonu kullanılarak toplama sonuçları API'den alınır ve tablo güncellenir.
  3. Callback Yönetimi:

    • İşlem tamamlandığında opsiyonel callback fonksiyonu çağrılır.

Önemli İpuçları

  • aggregateBy alanı, toplamanın hangi sütun üzerinde yapılacağını belirtir ve doğru sütun adını kullanmak önemlidir.
  • Toplama türleri (type), genellikle SUM, AVG, MIN, MAX gibi değerlerdir.
  • Kullanıcı tarafından belirlenen kriterlerde eksiklik veya hata varsa, işlem başlatılmadan önce kontrol edilmelidir.
  • API'den gelen sonuçların tabloya doğru bir şekilde yansıtıldığından emin olun.