DbGrid Alan Toplama Çözüldü

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
shochan
Üye
Mesajlar: 89
Kayıt: 06 Eki 2008 04:54
Konum: Kayseri

DbGrid Alan Toplama Çözüldü

Mesaj gönderen shochan »

S.a forumda yaptığım aramalar sonucu dbgrid üzerindeki istediğim alanda toplama işlemi yapıp edite yazdırıyorum fakat programa birde filtreleme eklediğimde işler karıştı. Şöyle ki:
Mesela kar alanındaki sayıları toplattığımda sonuç 10 çıkıyorsa filtreleme yapıp dbgrid üzerindeki kayıt sayısı azalıncada aynı sonucu veriyor sanki filtremele yapılmamış gibi algılıyor. Filtreleme ve toplama için kullandığım kodları yazayım.

Filtreleme için kullandığım kod:

Kod: Tümünü seç

procedure TForm2.ComboBox1Change(Sender: TObject);
begin
 form1.ibtable1.filter:='SATIS_YAPAN='+quotedstr(combobox1.Text);
form1.ibtable1.filtered:=true;
end;
Toplama için kullandığım kod ise:

Kod: Tümünü seç

procedure TForm2.Button2Click(Sender: TObject);
begin
ibquery1.close;
ibquery1.sql.text:='select sum(HAKEDIS) as toplam1 from SATISTABLO';
ibquery1.open;
edit2.Text:=ibquery1.fieldbyname('toplam1').asstring;
Yapmak istediğim dbgrid üzerinde filtreleme yaptığımda yani kayıt sayısı azaldığında toplamın doğru sonucu vermesi. Şuan iki durumdada aynı sonuç çıkıyor.

Not: Delphi7 - ibtable - ibquery - vt fb kullanıyorum.

İlgilenen arkadaşlara şimdiden teşekkürler.
En son shochan tarafından 06 Mar 2010 10:40 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
  • Devler Gibi İşler Yapmak İçin Karıncalar Gibi Çalışmak Lazım ...
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: DbGrid Alan Toplama

Mesaj gönderen aslangeri »

s.a.
toplama yaptığınız yerede filitreleme koşullarını eklmeniz gerekmektedir.

Kod: Tümünü seç

ibquery1.sql.text:='select sum(HAKEDIS) as toplam1 from SATISTABLO';
yerine

Kod: Tümünü seç

ibquery1.sql.text:='select sum(HAKEDIS) as toplam1 from SATISTABLO where SATIS_YAPAN='+quotedstr(combobox1.Text)'
tabi budurumda filitreleme koşullarını arttırdığın zaman filitreleme koşullarınıda arttırman gerekecek.
dinamik bir where oluşturman gerekecek.
forumda bu knu ile ilgili yazılar mevcut.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
shochan
Üye
Mesajlar: 89
Kayıt: 06 Eki 2008 04:54
Konum: Kayseri

Re: DbGrid Alan Toplama

Mesaj gönderen shochan »

Hocam dediğiniz gibi yaptım kodu sizin verdiğiniz şekilde deiştirdim ama F9a bastığımda programı derlerken o satırda hata veriyo filtreleme yaptım yerde ve toplama yaptım yerde denedim sonuç aynı neden olabilir sizce ?
  • Devler Gibi İşler Yapmak İçin Karıncalar Gibi Çalışmak Lazım ...
ZeynelAbidin
Üye
Mesajlar: 69
Kayıt: 02 Oca 2009 09:03

Re: DbGrid Alan Toplama

Mesaj gönderen ZeynelAbidin »

Kod: Tümünü seç

ibquery1.sql.text:='select sum(HAKEDIS) as toplam1 from SATISTABLO where SATIS_YAPAN='+quotedstr(combobox1.Text)'
kodun ensonundaki tırnak işaretini kaldırıp kodu dener misin
Kullanıcı avatarı
shochan
Üye
Mesajlar: 89
Kayıt: 06 Eki 2008 04:54
Konum: Kayseri

Re: DbGrid Alan Toplama

Mesaj gönderen shochan »

Zeynel hocam dediğiniz gibi yaptım programa run dediğimde çalışıyor fakat comboboxtan satış yapan kişiyi seçip butona bastığımda combodaki texin bi kısmını alıp diğer kısmını almıyor ve hata veriyor

Kod: Tümünü seç

---------------------------
Debugger Exception Notification
---------------------------
Project Program.exe raised exception class EIBInterBaseError with message 'Dynamic SQL Error
SQL error code = -104
Token unknown - line 1, column 62
ĞUZHAN'. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help   
---------------------------
Hata bu ĞUZHAN yazan yer normalde OĞUZHAN olması gerek comboboxta OĞUZHAN yazıyo fakat bu şekilde algılıyo program :?
  • Devler Gibi İşler Yapmak İçin Karıncalar Gibi Çalışmak Lazım ...
Kullanıcı avatarı
shochan
Üye
Mesajlar: 89
Kayıt: 06 Eki 2008 04:54
Konum: Kayseri

DbGrid Alan Toplama Çözüldü.

Mesaj gönderen shochan »

Hocam çok özür dileyerek tekrardan yazıyorum ne oldu anlamadım ama kodda hiç bi değişiklik yapmadan şuan tekrar çalıştırdım ve şuan çalışıyor istediğim sonucu verdi ama biraz önce neden öyle bi hata aldım anlamadım gitti. Tekrardan teşekkür ediyorum Allah hepinizden razı olsun :bravo: :bravo: :bravo:

Saygılarımla iyi çalışmalar.
  • Devler Gibi İşler Yapmak İçin Karıncalar Gibi Çalışmak Lazım ...
Cevapla