IBDataset ile DBGird de satır toplamında query resfresh olmu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
musti
Üye
Mesajlar: 527
Kayıt: 11 Tem 2005 09:44

IBDataset ile DBGird de satır toplamında query resfresh olmu

Mesaj gönderen musti »

Bir DBGrid de ki borc ve alacak sutunlarınını toplamını alarak altına yazdırıyorum. DBgrid ' e girince otomatik altta toplam olusuyor. sorunum yok new record olunca bu toplam gercekleşiyor edit olunca zararı yok dedim asılnda edit olunca olsa daha iyi olur ama

İkinci bir Query1 ye

Kod: Tümünü seç

select sum(borc),sum (alacak) from detail
dedim ve Detail IBDatased in Afterpostune after deletesine

Kod: Tümünü seç

 DataModule1.Fis_Toplam_Al.Close;
    DataModule1.Fis_Toplam_Al.ParamByName(FIS_NO').Value=Fis_Master.FieldByName('FIS_NO').Value;
    DataModule1.Fis_Toplam_Al.Open;


ama guncelle saglikli degil mesala silince olmuyor degisince olmuyor eski sum lar aklında kalıyor.

bunu sp ile halledeyim dedim o da gerekmez dusundum.

sizce sorun nerde

[/quote]
Kullanıcı avatarı
selman
Üye
Mesajlar: 664
Kayıt: 04 Ara 2003 12:06
Konum: İzmir

Mesaj gönderen selman »

selam
Musti kardeş bu işlemi birde böyle yapsanız olurmu acep

Kod: Tümünü seç

 DataModule1.Fis_Toplam_Al.Close;
 DataModule1.Fis_Toplam_Al.Open; 
  DataModule1.Fis_Toplam_Al.ParamByName(FIS_NO').Value=Fis_Master.FieldByName('FIS_NO').Value;  
kolay gelsin
Kullanıcı avatarı
musti
Üye
Mesajlar: 527
Kayıt: 11 Tem 2005 09:44

Mesaj gönderen musti »

değişen bir sey olmadı

birde parambyname kullanısı sizin yazdıgınız gibimi .
ben butun orneklerde open dan once parambyname kullanılır diye gordum.

new recorda toplamda sorun yok edit ve delete sorun var. rakamları silinmemiş veya değiştirilmemiş olarak goruyor.
Kullanıcı avatarı
musti
Üye
Mesajlar: 527
Kayıt: 11 Tem 2005 09:44

Mesaj gönderen musti »

IBDAtasete bagli bir DBgird de sutun toplamı almanın iyi yolu iknci bir query ye Select sum(borc) yazcıp open edip sonucu bir edit icine koymak diye dusunuyordum ama sanarımı yine eski sutul while eof olana kadar INDatese next edip bookmarkları kullarak toplam almak daha iyi olacak gibi.

cunku sum li query edit ve delete olayında dogru calismiyor.
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

merhaba
@musti demişki
IBDAtasete bagli bir DBgird de sutun toplamı almanın iyi yolu iknci bir query ye Select sum(borc) yazcıp open edip sonucu bir edit icine koymak diye dusunuyordum ama sanarımı yine eski sutul while eof olana kadar INDatese next edip bookmarkları kullarak toplam almak daha iyi olacak gibi.

cunku sum li query edit ve delete olayında dogru calismiyor.
kardeş toplam aldırdığın 2.query veya 2.datasetin datasource özelliğini toplam aldırdığın tablonun bağlı olduğu datasorceyi bağlarsan. sorunun düzelir. yazdığım şekilde tekrar denersen kayıt değişimlerinde, silmelerde toplamın değiştiğini göreceksin.

kolay gelsin....
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
Kullanıcı avatarı
musti
Üye
Mesajlar: 527
Kayıt: 11 Tem 2005 09:44

Mesaj gönderen musti »

Zaten oyle
:cry:
new recordda sorun yok topluyor.
sadece silince veya değiştirilince yeni değerleri toplamıyor. bu sefer new recordda da eski bilgileri topluyor.
after postunada after edidinede new recordunada toplam alma gueryi acip kapatıyorum.

IBDaseti commit yapınca dogru calisiyor ama 3 , 4 eklemeden sonra gene yanlıs oluyor
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

hocam ben kullanıyorum aynı yöntemle bir problem yaşamıyorum. yalnız burda dikkat etmen gereken husus var vt fb ise 2.query veya 2.dataset için ayrıca transaction veya database tanımlama. sum için 1 tane dataset 1 tanede datasource ekle sum için kullanacağın query veya dataset için transaction olarak tabloyu bağladığın tranactionu ve database yi bağla.

kolay gelsin....
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
Kullanıcı avatarı
musti
Üye
Mesajlar: 527
Kayıt: 11 Tem 2005 09:44

Mesaj gönderen musti »

tek transactiona bagli

yani bir master tablem(IBDateset) var bir detail tablem(IBDateset) var birde detailde ki borc olanlarını toplayan toplam_al query im var. IBDATABASE1 var IBTransactiona bagli butun tableler ve query de.


Query de select sum(borc) from detail sql texti var.

DBGride Detail tablem bagli

DBGRid üüzerinde borc alanı yeni girince yani yeni satir da ve onceden girilmiş alanlar gelince sum ile aldıgım toplam sonuc dogru. ama calisma anında borc alanın degisince ve ya silince toplam alanım yanlis geliyor.

DBGRrid üzerinde değişiklikşler yapıyorum

Detail dosyanın aftetdelete ve afterpost ve aftereditne de
Toplama_al .Close
Toplama_al .Open denedim
olmadı
forcedrefresh =true yaptım yine olmadı.

sizin ki dbgrid -üzerinde borc u degişince nasıl dogru sonuc veriyor bende ne faklı anlayamadım.
:(
Cevapla