DBGrid de bir alanın toplatılması

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
secret_boy
Üye
Mesajlar: 151
Kayıt: 17 Kas 2005 04:46

DBGrid de bir alanın toplatılması

Mesaj gönderen secret_boy »

Merhabalar bir konuda takıldım
aşağıda bulunan resimde de görüldüğü gibi toplam kısmında bulunan yada xxx alanın toplamını bir label'e yazdırmak istiyorum.bunu nasıl yapabilirim yardım edebilir misiniz?
Dosya ekleri
hacim.JPG
hacim.JPG (4.31 KiB) 2148 kere görüntülendi
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: DBGrid de bir alanın toplatılması

Mesaj gönderen erdogan_ozkaya »

Kod: Tümünü seç

procedure TARAC_EKSTRALARI.btn4Click(Sender: TObject);
 var
         Bookmark : TBookmark;
         FIRMA_TOPLAM : Real;
begin

    begin
         lblFIRMA_TOPLAM.Caption:='Firma Toplam Tutarı : 0 TL     ';
         edt1FIRMA_TOPLAMI.Text:='0';
         Bookmark := qrySERVIS_HAREKETLERI_DB.GetBookmark;
         qrySERVIS_HAREKETLERI_DB.DisableControls;
         FIRMA_TOPLAM := 0;
     try
         qrySERVIS_HAREKETLERI_DB.First;
       while not qrySERVIS_HAREKETLERI_DB.EOF do begin
         FIRMA_TOPLAM := FIRMA_TOPLAM + qrySERVIS_HAREKETLERI_DB.fieldbyname('FIRMA_TOPLAM_TUTAR').Value;
         qrySERVIS_HAREKETLERI_DB.Next;
         lblFIRMA_TOPLAM.Caption:='Firma Toplam Tutarı : '+ FloatToStr(FIRMA_TOPLAM) +' TL     ';
         edt1FIRMA_TOPLAMI.Text:=FloatToStr(FIRMA_TOPLAM);
         NxNumberEdit2_tutar.Text:=FloatToStr(FIRMA_TOPLAM);
         end;

                 finally
         qrySERVIS_HAREKETLERI_DB.GotoBookmark(Bookmark);
         qrySERVIS_HAREKETLERI_DB.FreeBookmark(Bookmark);
         qrySERVIS_HAREKETLERI_DB.EnableControls;
    end;
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: DBGrid de bir alanın toplatılması

Mesaj gönderen brs »

Kod: Tümünü seç

procedure TForm1.btnDoSumClick(Sender: TObject);
var
  i: Integer;
  sum : Single;
begin
  if DBGrid1.SelectedRows.Count > 0 then
  begin
    sum := 0;
    with DBGrid1.DataSource.DataSet do
    begin
      for i := 0 to DBGrid1.SelectedRows.Count-1 do
      begin
        GotoBookmark(Pointer(DBGrid1.SelectedRows.Items[i]));
        sum:= sum + AdoQuery1.FieldByName('Size').AsFloat;
      end;
    end;
    edSizeSum.Text :=  FloatToStr(sum);
  end
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
secret_boy
Üye
Mesajlar: 151
Kayıt: 17 Kas 2005 04:46

Re: DBGrid de bir alanın toplatılması

Mesaj gönderen secret_boy »

Cevaplar için çok teşekkür ederim.Sayın brs'ın vermiş olduğu kodları denedim ama herhangi bir sonuç döndürmedi ben mi hata yapıyorum anlayamadım kaynak kodları ekledim veri tabanı olarak mssql server 2008 R2 kullandım veri tabanı ismi kamyon table adı ise hacim yedek olarak da dosy içinde sıkıştırılmış hacim.rar dosyasındadır.Birde sayı tiplerinden float tanımlamama rağmen hacim alanına virgüllü (0,01) gibi rakamlar giremiyorum float ondalık sayılarda kullanılmıyor mu ? şimdiden ilgilenen tüm arkadaşlara teşekkür ederim.

Kod: Tümünü seç

procedure TForm1.btnDoSumClick(Sender: TObject);
var
  i: Integer;
  sum : Single;
begin
  if DBGrid1.SelectedRows.Count > 0 then
  begin
    sum := 0;
    with DBGrid1.DataSource.DataSet do
    begin
      for i := 0 to DBGrid1.SelectedRows.Count-1 do
      begin
        GotoBookmark(Pointer(DBGrid1.SelectedRows.Items[i]));
        sum:= sum + AdoQuery1.FieldByName('Size').AsFloat;
      end;
    end;
    edSizeSum.Text :=  FloatToStr(sum);
  end
end;
Dosya ekleri
hacimler.rar
(97.54 KiB) 57 kere indirildi
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: DBGrid de bir alanın toplatılması

Mesaj gönderen brs »

Selam,

mssql server database hakkında hiç bir fikrim yok sayı formatı dönüştürme hakkında araştırama yapabilirsiniz...
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
esistem
Üye
Mesajlar: 464
Kayıt: 02 Eki 2007 11:22
İletişim:

Re: DBGrid de bir alanın toplatılması

Mesaj gönderen esistem »

MSSQLServer varsa query de kullanıyor olman lazım o zaman sana en basit yol.
Diyelim bir tablon var, içinde adet ve tutar alanların var, bu alanları altta toplam şekilde birer label da göstermek istiyorsun, 2. bir query koy formuna,

Kod: Tümünü seç

select sum(adet) as toplam_adet, sum(tutar) as toplam_tutar from tablo_adi where vs.vs.
Qery close,open yapınca zaten toplamlar gelmiş olur, sende bunları alıp gerekli label yada textbox lara yazarsın olur biter.
Cevapla