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
Parametre | Tipi | Açıklama |
---|---|---|
aggregations | ITableAggregations[] | 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ığı
-
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
vetype
alanları ayarlanır.
-
API Çağrısı:
getdata
fonksiyonu kullanılarak toplama sonuçları API'den alınır ve tablo güncellenir.
-
Callback Yönetimi:
- İşlem tamamlandığında opsiyonel
callback
fonksiyonu çağrılır.
- İşlem tamamlandığında opsiyonel
Ö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
), genellikleSUM
,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.