cxGridde Bir fieldı kontrol ederek başka bir fieldı toplamak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

cxGridde Bir fieldı kontrol ederek başka bir fieldı toplamak

Mesaj gönderen TRSoft »

S.A.

Arkadaşlar bu cxGridde iki alanım olduğunu düşünün. Birisi sayısal diğeri text . Benim yapmak istediğim text alanı kontrol edip mesela A olanlarının sayısal alandakilerinin toplamını almak.

Bu işlemi kodla yapmak basit ama cxGridin footer alanında otomatik toplam alabiliyoruz. Bu toplamlar sırasında bir kıstas verebilmem lazım ama nasıl olduğunu bulamadım.

Footerın OnGetText alanında olabilr belki ama orda Query üzerinden işlem yapamam çünkü sorgulanmış olabilir.
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
bukentay
Üye
Mesajlar: 44
Kayıt: 16 Şub 2004 07:21

Mesaj gönderen bukentay »

kullandiginiz GridDBTableView'in
DataContrroler'inin
Summary'sinin
FooterSummaryItem'inin
OnSummary eventina
yazacaksiniz istediginiz kriteri(yukardaki yazim sekli yanlis anlasilmalara yol acabilir,ama acin objectinspectoru nereyi kasdettigimi anliyacaksiniz)

ornek verecek olursak:
alisfiyati gibi bi parasal deger iceren bi field icin toplam hesaplayan bi summary footer eklediginizi varsayarsak..

Kod: Tümünü seç

procedure TForm1.cxGrid1DBTableView1DataControllerSummaryFooterSummaryItemsSummary(
  ASender: TcxDataSummaryItems; Arguments: TcxSummaryEventArguments;
  var OutArguments: TcxSummaryEventOutArguments);
var
  Marka:variant;
begin
  marka:=ASender.DataController.Values[Arguments.RecordIndex,cxGrid1DBTableView1marka.Index];
  if marka<>'ARÇELİK' then
  OoutArguments.Done:=true;
end;
yukardaki ornekde marka field'inin degeri 'ARÇELİK' olanlarin toplami footerda gosterilir.

bu arada bu kod delphi7 ve cxgrid version5 icin gecerli.degisik versiyonlar icin denemedim.

kolay gele....
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Mesaj gönderen TRSoft »

Teşekkür ederim.
Anlattığınız şekilde problemi hallettim sağolun.
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Cevapla