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.
cxGridde Bir fieldı kontrol ederek başka bir fieldı toplamak
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
cxGridde Bir fieldı kontrol ederek başka bir fieldı toplamak
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır. HZ. MUHAMMED (S.A.)
ibadetle geçen bin geceden hayırlıdır. HZ. MUHAMMED (S.A.)
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..
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....
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;
bu arada bu kod delphi7 ve cxgrid version5 icin gecerli.degisik versiyonlar icin denemedim.
kolay gele....