DBGrid1 de Sütün Toplatma !!!

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ozcank
Üye
Mesajlar: 859
Kayıt: 28 Nis 2005 04:29

DBGrid1 de Sütün Toplatma !!!

Mesaj gönderen ozcank » 14 Ara 2018 09:12

Arkadaşlar Merhaba ; BABS Raporu hazırlıyorum fakat DBGrid1 de "KDV_HARIC_TUTAR " sütününü toplatıp Edit alanına yazdırmak istiyorum bir türlü beceremedim aşağıdaki sorguyu yazabildim ondada ilk satırı topluyor diğer kayıtların toplamını vermiyor. Yardımcı olabilir misiniz?

Kod: Tümünü seç

BaBsRapor.close;
BaBsRapor.sql.Add('select MONTH(TARIH), SUM(TEFI.BRUTTUTAR - SAT_ISKT - GEN_ISK1T - GEN_ISK2T - GEN_ISK3T) AS KDV_HARIC_TUTAR');
BaBsRapor.sql.Add('from TBLFATUIRS TEFI');
BaBsRapor.sql.Add('GROUP BY MONTH(TARIH),FTIRSIP,TIPI');
BaBsRapor.sql.Add('HAVING (Sum(TEFI.BRUTTUTAR - SAT_ISKT - GEN_ISK1T - GEN_ISK2T - GEN_ISK3T)>=$5000) AND (FTIRSIP=''1'') AND (TIPI=''2'') AND MONTH(TARIH)='+#39+''+Edit1.Text+''+#39+'');
BaBsRapor.open;
GenelToplam.Text:=BaBsRapor.fieldbyname('KDV_HARIC_TUTAR').asstring;

Kullanıcı avatarı
ihalilcoban
Üye
Mesajlar: 119
Kayıt: 10 Ara 2015 10:39
Konum: Gaziantep

Re: DBGrid1 de Sütün Toplatma !!!

Mesaj gönderen ihalilcoban » 14 Ara 2018 06:20

Merhaba.

Fikir vermesi açısından kullandığım kodu ekleyeyim, firebird de şu şekilde kullanıyorum.

Kod: Tümünü seç

DM.BORC_TOPLAM.Close;
DM.BORC_TOPLAM.SelectSQL.Clear;
DM.BORC_TOPLAM.SelectSQL.Text:=
'select CARI_PC_NO, ADI_SOYADI, SUM(GENEL_TOPLAM_GIRIS) BORC_TOPLAMI, COUNT(CARI_PC_NO) TOPLAM_DONEM'
+' from ISLEM_TBL WHERE SON_ODEME_TARIHI>='''+DateToStr(Ilk_Tar.Date)+''' and (SON_ODEME_TARIHI<='''+DateToStr(Son_Tar.Date)+''')'+' AND (ODEME_DURUMU='+'''Ödenmedi'''+')'
+' GROUP BY CARI_PC_NO, ADI_SOYADI ORDER BY ADI_SOYADI ASC';
DM.BORC_TOPLAM.Open;
Select ile seçilen alanları Group by da belirtmek gerek. Sizin kodunuzda Where yok, gözden mi kaçırdınız yoksa gerek mi görmediniz?

ozcank
Üye
Mesajlar: 859
Kayıt: 28 Nis 2005 04:29

Re: DBGrid1 de Sütün Toplatma !!!

Mesaj gönderen ozcank » 14 Ara 2018 09:51

ihalilcoban teşekkür ederim bilgin için ben sütünda 90 kayıt var onların dip toplamını almak istiyorum.

Kullanıcı avatarı
ihalilcoban
Üye
Mesajlar: 119
Kayıt: 10 Ara 2015 10:39
Konum: Gaziantep

Re: DBGrid1 de Sütün Toplatma !!!

Mesaj gönderen ihalilcoban » 14 Ara 2018 10:05

Merhaba.

Sütun altına toplam almak istiyorsanız DBGridFooter kullanabilirsiniz. Jedi bileşen seti içerisinde JvDBUltimGrid ve JvDBGridFooter kullanarak istediğiniz sonucu elde edebilirsiniz.
https://ibb.co/zPPvt84

Resimde kullanım şeklini görebilirsiniz.

ozcank
Üye
Mesajlar: 859
Kayıt: 28 Nis 2005 04:29

Re: DBGrid1 de Sütün Toplatma !!!

Mesaj gönderen ozcank » 14 Ara 2018 10:13

Teşekkür ederim. KDV_HARIC_TUTAR dip toplamını döngü ile nasıl alabilirim?

ozcank
Üye
Mesajlar: 859
Kayıt: 28 Nis 2005 04:29

Re: DBGrid1 de Sütün Toplatma !!!

Mesaj gönderen ozcank » 14 Ara 2018 10:21

Bu Kodda yardımcı olabilir misin ?

Kod: Tümünü seç

procedure TForm19.Button1Click(Sender: TObject);
Var
GenTp : String;
begin
          with BaBsRapor do
                                      begin
BaBsRapor.Close;
BaBsRapor.SQL.Clear;
BaBsRapor.sql.Text:='select MONTH(TARIH), SUM(TEFI.BRUTTUTAR - SAT_ISKT - GEN_ISK1T - GEN_ISK2T - GEN_ISK3T) AS KDV_HARIC_TUTAR' +
                    'from TBLFATUIRS TEFI' +
                    'WHERE (FTIRSIP=''1'') AND (TIPI=''2'') AND MONTH(TARIH)='+#39+''+Edit1.Text+''+#39+'' +
                    'GROUP BY MONTH(TARIH),FTIRSIP,TIPI' +
                    'HAVING (Sum(TEFI.BRUTTUTAR - SAT_ISKT - GEN_ISK1T - GEN_ISK2T - GEN_ISK3T)>=$5000)';
Active := True;
    if not IsEmpty then
    begin
      GenTp := 0;
      First;
      while not Eof do
      begin
        GenTp := GenTp + FieldByName('KDV_HARIC_TUTAR').AsFloat;
        Next;
      end;
GenelToplam.Text:=BaBsRapor.fieldbyname('KDV_HARIC_TUTAR').asstring;
       end;

Kullanıcı avatarı
ihalilcoban
Üye
Mesajlar: 119
Kayıt: 10 Ara 2015 10:39
Konum: Gaziantep

Re: DBGrid1 de Sütün Toplatma !!!

Mesaj gönderen ihalilcoban » 14 Ara 2018 10:37

Dataset ile kullandığım yapı;

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
toplam: double;
begin
toplam:=0;
Dataset.First;
  WHILE NOT Dataset.Eof DO
    Begin
      toplam:=TOPLAM+DatasetGENEL_TOPLAM_GIRIS.Value;
      Dataset.Next;
    End;
Edit1.text:=FloatToStr(toplam);
end;

ozcank
Üye
Mesajlar: 859
Kayıt: 28 Nis 2005 04:29

Re: DBGrid1 de Sütün Toplatma !!!

Mesaj gönderen ozcank » 14 Ara 2018 11:02

Teşekkür ederim.

Cevapla