Toplama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Tahsinzencir
Üye
Mesajlar: 48
Kayıt: 15 May 2009 12:16

Toplama

Mesaj gönderen Tahsinzencir »

Veri Tabanına gerek duyulmadan
DBGrid içindeki tutar sütununun toplamını nasıl alırım.
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Toplama

Mesaj gönderen mkysoft »

DataTable üzerinde calculated field eklemek mümkün diye hatırlıyorum. Örnek: http://www.componentace.com/calculated-field-delphi.htm
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: Toplama

Mesaj gönderen ertank »

Anladığım kadarıyla kolon toplamı almak istiyorsunuz. Veri tabanı olamadan bunu yapmanın yolu bir döngü ile ilgili kolon satırların değerlerini toplamak olacaktır.

Eğer ücretli DevExpress bileşenlerini kullanıyor iseniz Summary özelliğini kullanarak otomatik toplam aldırabilirsiniz. Ancak bu da arka planda yukarıdaki gibi bir döngü içinde işlemi gerçekleştirecektir.

Manuel olarak toplam almak için aşağıdaki gibi bir yöntem izleyebilirsiniz:

Kod: Tümünü seç

function GetSum(Field: TField): Double;
var
  Mark: TBookmark;
begin
  if Field.DataSet.State <> dsBrowse then Exit(-1);

  Result := 0;
  if Field.DataSet.RecordCount = 0 then Exit();

  Mark := Field.DataSet.GetBookmark();
  Field.DataSet.DisableControls();
  try
    Field.DataSet.First();
    while not Field.DataSet.Eof do
    begin
      Result := Result + Field.AsFloat;
      Field.DataSet.Next();
    end;
  finally
    try
      Field.DataSet.GotoBookmark(Mark);
    except
    end;
    Field.DataSet.EnableControls();
  end;
end;
Kullanimi aşağıdaki gibi olacaktır:

Kod: Tümünü seç

    Toplam := GetSum(ClientDataSet1.Fields[0]);
Ekte örnek bir uygulama bulabilirsiniz.
Dosya ekleri
kolontoplami.rar
(5.92 KiB) 46 kere indirildi
Tahsinzencir
Üye
Mesajlar: 48
Kayıt: 15 May 2009 12:16

Re: Toplama

Mesaj gönderen Tahsinzencir »

sevgili ertank kardeşim kod işimi gördü ancak rar dosyası arşivi bozuk açılmadı uygulamayı görmek isterim. teşekkürler.
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: Toplama

Mesaj gönderen ertank »

WinRar versiyon 5.0 veya sonrası ile deneyin lütfen.
Cevapla