dbgrid ten toplam alma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
otorun
Üye
Mesajlar: 59
Kayıt: 31 Eki 2005 05:04
Konum: izmir

dbgrid ten toplam alma

Mesaj gönderen otorun »

arkadaşlar db gridte bulunan miktarların (tutarların) toplamını almak istiyorum bunu bi textbox ta yapabilir miyim veya başka bir bileşende yapmam mümkün mü acaba?
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

Table kullanıyorsanız;

Kod: Tümünü seç

var
  toplam:integer;
begin
  toplam:=0;
  Table1.First;
  While not Table1.eof Do 
  begin
    toplam:=toplam+Table1.FieldByName('AlanAdı').AsInteger;
    Table1.Next;
  end;

  edit1.text:=inttostr(toplam);
end;
gibi bir şey işinizi görür sanırım.

Kolay gelsin.
otorun
Üye
Mesajlar: 59
Kayıt: 31 Eki 2005 05:04
Konum: izmir

Mesaj gönderen otorun »

arakdaşım bu kodun aynısını yazdım ama çalışmadı :(
var
toplam:integer;
begin
toplam:=0;
Table1.First;
While not Table1.eof Do
begin
toplam:=toplam+Table1.FieldByName('AlanAdı').AsInteger;
Table1.Next;
end;

edit1.text:=inttostr(toplam);
end;
bu kodda toplam:=toplam+table1. yazdıktan sonra fieldByName alanını çıkarmadı manuel olarak yazdığımda ise sorun verdi :?:
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

Sanırım query ile karıştırdım özür...

Table1.FieldByname yerine
toplam:=toplam+Table1.FieldValues['Alanadı']; deneyin.

Ama en kesini şu olur;
toplam:=toplam+Table1AlanAdi.AsInteger;

Bu arada toplamı alan türünü de göz önünde bulundurarak tanımlayın.
Mesela float'sa real yapın.
similyan
Üye
Mesajlar: 52
Kayıt: 08 Nis 2006 12:18
Konum: konya
İletişim:

Mesaj gönderen similyan »

benim dbgrig de başlık altında üç harf var T,Y,D şimdi altta toplam almam gerekiyor.T=1 olarak Y=0.5 D=0.25 olarak görüp toplamı öle yazacak bunu nasıl yapabiliriz.
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

Eğer doğru anladıysam;

Kod: Tümünü seç

var
  toplam,eklenecek:real;
begin
  Table1.First;
  Toplam:=0;
  While Table1.EOF=False Do
  begin
    eklenecek:=1;
    if Table1AlanAdi.AsString='Y' Then eklenecek:=0.5;
    if Table1AlanAdi.AsString='D' Then eklenecek:=0.25;
    toplam:=toplam+eklenecek;
    Table1.Next;
  end;
end;
similyan
Üye
Mesajlar: 52
Kayıt: 08 Nis 2006 12:18
Konum: konya
İletişim:

Mesaj gönderen similyan »

Kod: Tümünü seç

var 
  toplam,eklenecek:real;
begin
  adoTable4.First;
  Toplam:=0;
  While ADOTable4.EOF=False Do
  begin
    eklenecek:=1;
if adoTable4.FieldByName('Devamsızlık').AsString='Y' Then eklenecek:=0.5;
    toplam:=toplam+eklenecek;
    ADOTable4.Next;
şeklinde yazdım ama olmadı çalışmıyor
Kullanıcı avatarı
skyking
Üye
Mesajlar: 136
Kayıt: 09 Kas 2005 12:52
Konum: Antalya

Mesaj gönderen skyking »

hocam grid de cok sayıda bilgi cekersen yavaslama olabilir

ve row agayıya dogru gider bunu engelelek için

hızlılık için
inherited

row asagı gitmemesi için
ve enebledcontrol kulan

sana kolay gelsin
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

similyan yazdı:...
şeklinde yazdım ama olmadı çalışmıyor
Olmadı derken...
Hata mı verdi?(Veridyse hata neydi?)
Toplam 0 mı oldu?
Toplam yanlış mı oldu?

Bu arada bir not:
Aslında kod şöyle olmalıydı (kısaltarak yazıyorum);

Kod: Tümünü seç

if Devamsızlık='T' Then eklenecek:=1;
if Devamsızlık='Y' Then eklenecek:=0.5;
if Devamsızlık='D' Then eklenecek:=0.25;
Fakat bu üç değerden birini mutlaka alacak diye, ilk satırdaki sorgulamayı yapmayıp, hemen eklenecek:=1 demiştim. Eğer T,Y,D haricinde bir değeri varsa; hatalı sonuç bulması çok normal.
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

soruya gelen cevaplara bi süredir seyirci olarak bakıyorum. kim query ile sql sorgu yapmayı önermiyor diye.
hakkaten siz niye yoruyosunuz ki kendinizi, yazın bi sql kodu olsun bitsin. :)
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

nitrokonat yazdı:soruya gelen cevaplara bi süredir seyirci olarak bakıyorum. kim query ile sql sorgu yapmayı önermiyor diye.
hakkaten siz niye yoruyosunuz ki kendinizi, yazın bi sql kodu olsun bitsin. :)
Yoğurt yiyiş meselesi:)
Onu da sen yazıver @nitrokonat abim:)

(Ben sadece basit işlerde SQL kullanıyorum.
SQL'in yapamadığı bir şey mutlaka karşıma çıkacak.
Ona hazırlık olarak...)
ikut

client server mimariye gecersen

Mesaj gönderen ikut »

ulu coder yazdı:
nitrokonat yazdı:soruya gelen cevaplara bi süredir seyirci olarak bakıyorum. kim query ile sql sorgu yapmayı önermiyor diye.
hakkaten siz niye yoruyosunuz ki kendinizi, yazın bi sql kodu olsun bitsin. :)
Yoğurt yiyiş meselesi:)
Onu da sen yazıver @nitrokonat abim:)

(Ben sadece basit işlerde SQL kullanıyorum.
SQL'in yapamadığı bir şey mutlaka karşıma çıkacak.
Ona hazırlık olarak...)
vede alemin yazdığı kod senmin koddan 10 kere hızlı çalışırsa table ve query olaayına tekrar dön.

Şaka bir yana nitrokonat haklı. Misal ben iki tabloyu birleştirdim table ile kod yazıp. 4 dk surdu... arada baya bir find da gerekti çunku.. aynı şeyi sql joinle yaptım... işlemin süresini hiç sorma kodçuluğumdan utanıyorum...

SQL rocks..
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

similyan yazdı:benim dbgrig de başlık altında üç harf var T,Y,D şimdi altta toplam almam gerekiyor.T=1 olarak Y=0.5 D=0.25 olarak görüp toplamı öle yazacak bunu nasıl yapabiliriz.
cxgrid+ footer+summary

anahtar kelime araştırması senden....
Siz hayal edin...Biz yapalım TuannaSoft...
Cevapla