Selam Dostum;
Ben böyle bir olay yaptığım zaman aşağıdaki kodu kullanıyorum ve Toplambul Procedure'ni gerekli yerlere yazarak istediğim sonucu elde edebiliyorum.
procedure Tchgfrm.ToplamBul;
var
Deger:double;
genel : double;
iade : double;
begin
with query4 do
begin
close;
sql.Clear;
sql.add('select sum(tutar) as toplam from accountsaction where kid='+''''+RxDBLookupCombo2.Value+''''+'and mcariid='+''''+RxDBLookupCombo1.Value+''''+'and tarih='+''''+anafrm.donustur(dxDateEdit2.Date)+''''+' and ba=0');
Active:=true;
label10.Caption:=FormatCurr('0.00,## YTL',Query4toplam.AsCurrency);
Deger:=Query4toplam.AsCurrency;
close;
sql.Clear;
sql.add('select sum(tutar) as toplam from accountsaction where kid='+''''+RxDBLookupCombo2.Value+''''+'and mcariid='+''''+RxDBLookupCombo1.Value+''''+'and tarih='+''''+anafrm.donustur(dxDateEdit2.Date)+''''+' and ba=1');
Active:=true;
label11.Caption:=FormatCurr('0.00,## YTL',Query4toplam.AsCurrency);
genel := Query4toplam.AsCurrency;
close;
sql.Clear;
sql.add('select sum(tutar) as toplam from accountsaction where kid='+''''+RxDBLookupCombo2.Value+''''+'and mcariid='+''''+RxDBLookupCombo1.Value+''''+'and tarih='+''''+anafrm.donustur(dxDateEdit2.Date)+''''+' and ba=2');
Active:=true;
label15.Caption:=FormatCurr('0.00,## YTL',Query4toplam.AsCurrency);
iade := Query4toplam.AsCurrency;
sql.Clear;
sql.add('select sum(tutar) as toplam from accountsaction where kid='+''''+RxDBLookupCombo2.Value+''''+'and mcariid='+''''+RxDBLookupCombo1.Value+''''+'and tarih='+''''+anafrm.donustur(dxDateEdit2.Date)+''''+' and ba=3');
Active:=true;
label17.Caption:=FormatCurr('0.00,## YTL',Query4toplam.AsCurrency);
label12.Caption:=FormatCurr('0.00,## YTL',Deger-Genel-iade+Query4toplam.AsCurrency);
close;
end;
end;
Burada ben 3 alana göre eşleştirip sonucu label'lara yazdırıyorum en altta ufak bir değişikliğikle istediğin duruma getirebilirsin. Umarım işine yarar...
Kolay gelsin...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
mnt sizin dediğin kodu zaten yazıyorum. hatta bi önceki sayfada da yazmıştım. sizin benden sonraki msjınızda sanki başka türlü bi kayıt işlemi yapıyormuşsunuz gibi anlamıştım. o yüzden yazabilirmisiniz demiştim.
biltes sizin yazdığınız kodu denedim. procedure olarak yazdım. ve o şekilde çağırıyorum. ama yine grid üzerinde yaptığım değişikliklerden sonra label da göstermiyor
Dostum;
bir yerde kodlama da hata yapıyor olabilirsiniz.
procedure olarak yazdım. ve o şekilde çağırıyorum. ama yine grid üzerinde yaptığım değişikliklerden sonra label da göstermiyor
demişsiniz bir yerde gözden kaçan bir hata var. Kodu ve yaptığınız işlemleri Breakpoint koyarak izlediniz mi? Eğer sizin için bir mahsuru yoksa yaptığını projeyi gönderme gibi bir durumunuz olabilirse inceleyip sorunu bulmak için yardım etmek isterim...
Kolay gele...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
sizce grid üzerinde hangi alana o procedure ü yazmalıyım.
mesela grid üzerinde değişiklik yapınca gridin hangi özelliğine yada querynin hangi özelliğine yazmam lazımki değişiklikler hemen görülsün. ben tüm özelliklerini denedim. ama hiçbiri olmadı
Dbgrid'in değiştirdiğiniz alanın onchange'ine yazabilirsin.
Şöyle bir şey yaparak deneyin, bu procedure bir butonun altına yazın ve buton yardımı ile yapmak istediğini uygula, son olarak ta bu kodun içinde bir iki yere bir showMessage yaz kodun buraya gelip gelmediğini bir kontrol edin...
Son olarakta
Eğer sizin için bir mahsuru yoksa yaptığını projeyi gönderme gibi bir durumunuz olabilirse inceleyip sorunu bulmak için yardım etmek isterim...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
mrb arkadaşlar yardımcı olmaya çalışan herkese çoook tşk ederim.
gride düzelt die bir alan ekledim. düzelt alanına tıklayınca ordaki değerleri editlere attım. ve ordan güncelleme yaptım. bu şekilde yapınca labelda değişikliği görmüş oldum.
biltes kardeş sorun hallolunca sana göndermedim. tşk ederim saolasın.
herkese ii çalışmalar
kolay gelsin
Gridde yapılan değişiklikleri commit etmeden, tekrar tablodan aldığınız toplam size değişikliklerden sonrakini nasıl veriyor merak ettim..
Post edince clienttaki datasetinizde değişiklikler oluyor. Yani sizin datasetinizde sizin değiştirdiğiniz değerler görünüyor. Tabloyu refresh veya close etmediğiniz veya transactionınız devam etttiği sürece bu değişiklikler korunuyor. Bunun yanında Adoda, Midasta, IBX veya BDE de transaction kullanımlarında bazı farklılıklar var. Sizin ne kullandığınızı bilmiyorum ama bunlara benzer bir şey kullanıyorsanız, her işlemden sonra commit yapmamanız gereken yerler programlarınızda olabilir.
Biz genel yapı itibariyle kaydetme ve vazgeçme işlemi işlemi için kullanılan genel yöntemi uyguluyoruz ki kaydet ve vazgeç butonları (ya da kısayollarla..) commit ya da roolback şeklinde basit çözüm mantığıdır..Ancak gridle işlem yapılan bölümlerde bu şekilde dışardan müdahalelerde commit etmeden verileriniz güncellenmiyor/güncellenmez...Bu noktada gözüme çarpan şey, sorguyla toplam alınan kodlar oldu..Uzun yazıları pek okumadığım için sizin verdiğiniz örnekte hangisi kullanılıyor tam olarak dikkat etmedim açıkçası..Değinmek istediğim nokta da burasıydı.
Kolay gelsin..