Cx Grid İle Filitrelenen kayıtlarda hesaplama işlemi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Cx Grid İle Filitrelenen kayıtlarda hesaplama işlemi

Mesaj gönderen pro_imaj »

Merhaba,

cxgrid kullanmaya yeni başladım. daha önce dbgrid kullanıyordum ve bir arama ekranın vardı burada kriterleri belirleyip sonucuna göre hesaplatma işlemi yaptırıyorum. birçok hesap var.

Yani liste sonucuna göre Tutar kısımlarını toplatıyorum vs. Ama bu işlemi cxgridin kendi aramasıyla (süzme oluşturucusu ile veya üstteki özelleştir kısmı ile) yazarsam nasıl bir yol izlemem veya kodu neye göre yazmam gerekir.

Teşekkürler
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Galiba Bilen ark. yok.
tşk ederim. İyi çalışmalar
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

Mesaj gönderen true_false »

merhaba bunun için öncelikle cxgridin (opject inspector) options view bölümünden footer özelliğini aç (True)

cx gridin costumize 'ina gir ve summary'den footer bölümüne bir alan ekle (Add) yeni eklediğin alanın özelliklerini belirt (sksum belirttiğin alanın toplamını alır)

eğer group by box özelliğini kullanarak oluşturduğun grupların toplamını alacaksan (sadece bir örnek) custimeze 'dan default for groups bölümüne aynı işlemleri uygulaman yeterli
umarım yardımcı olmuşumdur.
type
Tform1 = class(Tform)
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7604
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

nasıl bir hesaplama yapacaksın? Eğer cxGridin kendi toplamlarını kullanırsan, zaten yapılan süzme işlemine göre o sayıları güncelleyecektir. Senin ekstra bir işlem yapmana gerek yok.

Biraz daha açarsan yardımcı olmaya çalışırım.

Kolay gelsin.
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba,

Yardımlarınız için tşk ederim. Ama ben cxgridin kendi özelliği olan (sum,min,max) gibi özellikleri ile değilde benim belirlediğim şeylerle hesap işlemi yapmasını istiyorum.

Bunun nedenide şöyleki;
Yapmak istediğim hesap işlemleri basit işlemler değil örn. (ben ara prog yazdığım için link prog. önce tl olan kayıtları ytl ye çeviriyorum sonra bu kayıtların ilişkili olduğu vtlerde miktar*tutar işlemi var he aynı işlemin devamındada vade işlemi hesap durumu (portfoye giriş, ödendi gibi) yani kısacası muhakkak kod yazmam gerek diye düşünyorum.

Birde bunun avantajı şöyle olucakki ben sorgulama alanı için sayfalarca kod yazıyorum şu boşsa şunu sql ekleme doluysa sql ekle sonra birde cxgridin ki gibi güzel ve çok fonksiyonlu diil.

Yardımlarını için çok tşk ederim üstadlar :oops:

Herzaman gülümseyin ve daima mutlu olun.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7604
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

merhaba,

yöntemin çok esnek gelmedi bana ama bazen lazım olabiliyor. Sen kendin hesap yapıp, footera yazabilirsin...

footer'a yazdırmak için : Summary -> Footer kısmından eklediğin footerı seç ve OnGetText olayını kullan...

Filtrelenmiş kayıtlar üzerinde dolaşmak içinde viewdata'yı kullanabilirsin :

Kod: Tümünü seç

var
  I: Integer;
  lStrs: TStringList;
begin
  lStrs := TStringList.Create;
  try
    for I := 0 to tblvwData.ViewData.RecordCount - 1 do // Iterate
      lStrs.Add(tblvwData.ViewData.Records[I].Values[tblvwData.GetColumnByFieldName('LastName').Index]);
    ...
  finally // wrap up
    lStrs.Free;
  end; // try/finally
end;

Kolay gelsin.
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Cevap için tşk ederim @mussimsek hocam.

(başta yazdığım gibi cx gridi yeni kullandığım için özellikler baya başımı döndürüyor ama yardımı çok mükemmel yapmışlar. Harika bir bileşen.)

inş. söylediğiniz şekilde bişeyler olur hocam.

Not: aslında konuyla pek alakası yok ama hocam sizin türkçeleştirdiinz cx gridmi yoksa tüm quantumgrid bileşenlerimi (örn tarih bileşeni. gibi)

teşekkür ederim.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Cevapla