DBGrid de toplam bulma ve başka bir tabloya kopyalama yapma?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

DBGrid de toplam bulma ve başka bir tabloya kopyalama yapma?

Mesaj gönderen y.kulac »

arkadaşlar paradox tablo kullanıyorum.
1. soru
tabloyu table nesnesi ile DBGrid1 e listeliyorum. tabloda Alinan_Yakit
ve Alinan_Yag adında iki adet field var. DBGrid1 e listeleme yapınca
bu iki alanın toplamını Excel deki gibi listenin altında görmek istiyorum.
ayrıca ilgili alana kayıt eklenince toplam otomatik olarak güncellensin.
2. soru
12 adet tablom var Ocak, Subat,... Aralik
tablolardaki Toplam_Yakit fieldi güncellendikçe başka bir tablo olan Yillik_Toplam adlı tablodaki Ocak filedine kopyalansın.

herkese iyi çalışmalar diler saygılarımı sunarım.
Kullanıcı avatarı
athena
Üye
Mesajlar: 92
Kayıt: 20 Eyl 2003 06:32
Konum: Antalya
İletişim:

Mesaj gönderen athena »

Öncelikle boyle uygulamalar için cxGrid cok fonksiyonel bir component ve cok kullanıslı oncelikle onu tavsiye ederim. Çünkü bildiğim kadarıyle DBGrid in boyle bir toplam ozelliği yo.

Fakat ben DB grid kullanmak istiyorum dersen O zaman kendin Tablonun afterpost dan sonra baska bir gecici query koyacaksın ve
orada "Select Sum(Alinan_Yakit), Sum(Alinan_Yagt) From tablo where " gibi bir quey koyacaksın ve bu queryyi Close Open edeceksin.
Sonrada Toplamları yazdıracagın sahalara
CurrencyEdit1.Value := Tablo.Field[0].Value; şeklinde tutarı atacaksın.

Yine baska bir tabloya işlem yapacaksan yine beforepost yada afterpost procedurelerine bir işlem yeri yapacaksın ve orada diğer tablona işlem yaparsın.

Benim aklıma gelen çözüm.

Saygılar.
"Millete efendilik olmaz,hizmet olur,
kim Millete hizmet ederse,
o milletin efendisidir."
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

Mesaj gönderen y.kulac »

merhaba athena.
iliginize teşekkür ederim. cxGrid componentini nasıl temin edebilirim.
iyi çalışmalar.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

y.kulac yazdı: cxGrid componentini nasıl temin edebilirim.
Merhaba,

http://www.devexpress.com adresinden satın alabilirsiniz.

Kolay gelsin.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

1. soru
tabloyu table nesnesi ile DBGrid1 e listeliyorum. tabloda Alinan_Yakit
ve Alinan_Yag adında iki adet field var. DBGrid1 e listeleme yapınca
bu iki alanın toplamını Excel deki gibi listenin altında görmek istiyorum.
ayrıca ilgili alana kayıt eklenince toplam otomatik olarak güncellensin.
:arrow: Para vermeden yapmak istersen... Biraz ilüzyon, hokus pokus yapacasksın... Ekrandaki DBGrid'in hemen altına bir tane StringGrid koyucan ve sonuçlarını bu stringgridde ekrana yansıtıcan.... Nasıl mı ? Aşağıdaki metod. Tabi soruların cevabını bulmayı sana bırakıyorum... Forumda ararsan bulursun, bulamazsan forumda durumu anlatan birer başlıkla ayrıca sorarsın çünkü her biri bağımsız birer teknik...

- DBGrid'de görünen Alanlar kadar sütun olacak ve StringGridde her sütun genişliğinin DBGrid'deki ilgili alan sayıda ve genişliğinde olmasını sağlayacaksın.. (Soru:DBGrid'de herhangi bir sütun genişliği nasıl bulunur ?)

- StringGrid'de FixedRows ve FixedColumns değerlerini 0 veya 1 yap. Sana kalmış, toplam gibi başlık vs. koymak için.

- Veritabanında SQL sorgu ile istediğin toplamları aldır ve bu stringgrid'de ilgili sütuna yansıt.
(Soru: SQL ile herhangi bir alanın sütun toplamını nasıl alırım ?)
2. soru
12 adet tablom var Ocak, Subat,... Aralik
tablolardaki Toplam_Yakit fieldi güncellendikçe başka bir tablo olan Yillik_Toplam adlı tablodaki Ocak filedine kopyalansın.
- 2.Sorun yukardakinin benzeri olmuş, Veritabanında SQL sorgu ile istediğin toplamları aldır ve iligili tablonun ilgili alanlarına kaydet...
(Soru: SQL ile herhangi bir alanın sütun toplamını nasıl alırım ?)

- Ek bilgi : Bir veritabanında kayıt güncellemesi yapılıp yapılmadığını anlamak için Table'ın Events kısmında göreceğin AfterPost ve AfterDelete olaylarına kod yazmalısın... Adlarından da anlaşıldığı üzere tabloda yapılan Edit ve Insert işlemleri AfterPost, Delete işlemi ise AfterDelete procedure'ünü çalışmaya sevk eder.

- Bu procedure'ler içinde yukarda anlatılan / bulacağın işlemleri yaptırarak, her kayıt değişikliğinde toplamların güncel olarak değişimesini sağlayabilirsin.

- Çalışmalarında başarılar...
Resim
Resim ....Resim
Cevapla