dbgridde yapılan değişikliğin labela yansıması

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
mnt
Üye
Mesajlar: 57
Kayıt: 30 Eki 2005 12:58
Konum: Kocaeli

Mesaj gönderen mnt »

@Biltes
Daha sonraki etapta procedure'in ismi tablonun after post ve bu tabloya bağlı olan datasource ondatachange'ine ve dbgrid'in onchange'ine de yaz..
Katılmıyorum. datasource ondatachange sürekli tetikleneceği için buraya konmamalı. Sonsuz döngü oluşturur.

@bLue aLonE
Peki gridde yapılan değişiklik diske yazılmadan (commit edilmeden) yaptığın işlemler gridde yapılan değişiklikleri dikkate alır mı?
Evet.

Daha önce anlattığım gibi denedim ben problemsiz çalıştı. Debugla kontrol etmende fayda var.
Mustafa
a_o
Üye
Mesajlar: 84
Kayıt: 18 Eki 2005 04:41
Konum: Tekirdağ

Mesaj gönderen a_o »

kaydetme alanındaki yazdığınız kodu gönderebilirmisiniz ? :oops:
Kullanıcı avatarı
mnt
Üye
Mesajlar: 57
Kayıt: 30 Eki 2005 12:58
Konum: Kocaeli

Mesaj gönderen mnt »

:ara Cursor Type

Kod: Tümünü seç

veri.stkk.POST; 
Mustafa
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Mesaj gönderen Biltes »

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.

Kod: Tümünü seç

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...
a_o
Üye
Mesajlar: 84
Kayıt: 18 Eki 2005 04:41
Konum: Tekirdağ

Mesaj gönderen a_o »

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 :(
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Mesaj gönderen Biltes »

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...
a_o
Üye
Mesajlar: 84
Kayıt: 18 Eki 2005 04:41
Konum: Tekirdağ

Mesaj gönderen a_o »

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ı :cry:
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Mesaj gönderen Biltes »

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...
a_o
Üye
Mesajlar: 84
Kayıt: 18 Eki 2005 04:41
Konum: Tekirdağ

Mesaj gönderen a_o »

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
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Mesaj gönderen Biltes »

Ok. Önemli olan sorunun çözülmesiydi. Hallolduğuna sevindim...
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...
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

@mnt
Gridde yapılan değişiklikleri commit etmeden, tekrar tablodan aldığınız toplam size değişikliklerden sonrakini nasıl veriyor merak ettim..
Kullanıcı avatarı
mnt
Üye
Mesajlar: 57
Kayıt: 30 Eki 2005 12:58
Konum: Kocaeli

Mesaj gönderen mnt »

@bLue aLonE
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.
Mustafa
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

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..
Kullanıcı avatarı
mnt
Üye
Mesajlar: 57
Kayıt: 30 Eki 2005 12:58
Konum: Kocaeli

Mesaj gönderen mnt »

@a_o nun sorusunda toplam sorguyla alınmadığı için commite gerek te yok.
Kolay gelsin.
Mustafa
Cevapla