DBGridde 3 tane,fazla kayıt girilmeyen sütunun değer Toplamı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Turki
Üye
Mesajlar: 75
Kayıt: 03 May 2005 08:02

DBGridde 3 tane,fazla kayıt girilmeyen sütunun değer Toplamı

Mesaj gönderen Turki »

DBGridde 3 tane fazla kayıt girilmeyen sütunun Adet olarak toplamını Labele yazdırmam lazım çünkü programın gereği bu sütunlara kaç kayıt girildiği belli olacak..Aşağıdaki gibi;

Sütun:TERM1.......TERM2....TERM3
------- ------- -------
1........AD1200.................AB1201
2.........YT1202 ...............DB1203
3....................................TB1204
4.....................................BT1205
5.........CD1206...CT1207
6
7
8........................TB1210
9......................................DB1209
10........AD1208
--------------------------------------------
SONUÇ:.....4............2.............5......... =ADET

Görüldüğü gibi Her sıra dolu değil .Basit bir kodla bunu Labellere nasıl yazdırım TOPLAM Kayıtı DBGridin DataChange Olayına :

//Label6.Caption:=floatToStr(table1.RecordCount);

Bu Basit kodla Alıyorum TERM1,TERM2,TERM3 Sütunu 3 ayrı Labele nasıl alırım Lütfen Yardım 2 haftadır bunu için uğraşıyorum,Daha önce sordum cevap gelmedi...Yardım edendende etmeyende de Allah razı olsun ...Meşgul olmadıkları zaman yardıma koşuyorlar Çok sağolsunlar...
En son Turki tarafından 19 Haz 2005 05:38 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
oguzozturk74
Kıdemli Üye
Mesajlar: 574
Kayıt: 01 Şub 2004 12:29
Konum: Erdemli - MERSİN

Mesaj gönderen oguzozturk74 »

şöyle bir SQL cümlesinden dönen sonucu label a alabilirsiniz :
Mesela TERM1 in sayısını bulabilmek için ,

Kod: Tümünü seç

select count(*)
from TABLO_ADI
where TERM1 is not null and TERM2 is null and TERM3 is null
gibi...

Not : VT nizi söyleseniz daha iyi olurdu :wink:
Turki
Üye
Mesajlar: 75
Kayıt: 03 May 2005 08:02

.......................

Mesaj gönderen Turki »

Table Kullanıyorum.................
En son Turki tarafından 19 Haz 2005 01:21 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Turki
Üye
Mesajlar: 75
Kayıt: 03 May 2005 08:02

........................

Mesaj gönderen Turki »

Önce Teşekkürler..Veritabanı Firebird ama ben "Table" Kullanıyorum...
Daha doğrusu SQL'yi de yeni öğreniyorum....Proğram son aşamaya geldiği için Tabloda SQL Komutları kullanmadım..Tablo bitti bir bu sütundaki girilen değer sayıları kaldı...
oguzozturk74
Kıdemli Üye
Mesajlar: 574
Kayıt: 01 Şub 2004 12:29
Konum: Erdemli - MERSİN

Mesaj gönderen oguzozturk74 »

Query kullanmak dolayısı ile sql yazmak sanıldığı gibi zor bişey değil.
Bu noktada kullanmaya başlayabilirsiniz, göreceksiniz kullanımı daha esnek
ve daha kolay . :wink:
Turki
Üye
Mesajlar: 75
Kayıt: 03 May 2005 08:02

Mesaj gönderen Turki »

Ben Bu soruyu nerede sorduysam cevap alamadım..ilginç...veya yarım cevaplar almışımdır. hep mesela şu kodu kullan (Kod yazılıyor) sonra tavsiye işte şuraya aktar...falan..gibi...Oysa Söyle Olsa olmazmı?;
şu kod'u Şu olaya yaz (Örnek gösterilir) ve şu şekilde (Yine örnek gösterilir) Label e yaz .....gibi Ama yinede Çok sağolun bu kadarınada şükür..Proğrama başlayanlar yine kendileri bir şeyler üretiyorlar..Yanlız burada Şunu Söylemek Zorundayım..Bir kaç kişi var Onlardan bir tanesi de qKimirti ..Hocama çok teşekkür ediyorum ...Kodları anlaşılır ve neyin nerde kullanılacağını örnekleriyle anlatıyor ve gösteriyor...İşte olay budur..ama ben Sorunuma çözüm bulamadım..iş başa düştü..yine ......
Tekrar Herkese teşekkürler...
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

@oguzozturk74 ün yazdığı kodu şöyle değiştirebilirsin..

DataSource nın OnDataChange ine;

Kod: Tümünü seç

Query1.SQL.Clear;
Query1.SQL.Add('select count(*) as t1_top from TABLO_ADI');
Query1.SQL.Add('where TERM1 is not null');
Query1.Open;
Label1.Caption := Query1.FieldByName('t1_top').AsString;
Query1.Close;
// aynı olayı diğer TERM2 ve TERM3 için de yazman lazım.
tabi bunu tek bir select le yapabilmek için kullandığın veritabanını bilmek lazım :?: Detaylı bilgi vermeden serzenişte bulunmak kolay tabi :!:
Eğer paradoks ise şu da bir sade bir çözüm olabilir;

Kod: Tümünü seç

Query1.SQL.Clear;
Query1.SQL.Add('select count(TERM1) as t1_top, count(TERM2) as t2_top, count(TERM3) as t3_top from TABLO_ADI');
Query1.Open;
Label1.Caption := Query1.FieldByName('t1_top').AsString;
Label2.Caption := Query1.FieldByName('t2_top').AsString;
Label3.Caption := Query1.FieldByName('t3_top').AsString;
Query1.Close;
burada count(TERM1) ile sadece içinde bilgi olan TERM1 i saymaktadır :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Turki
Üye
Mesajlar: 75
Kayıt: 03 May 2005 08:02

...................................

Mesaj gönderen Turki »

Teşekkür ettim Hocam Çok Makbule geçti...Ben Firebird Kullanıyorum ama bağlantı yı Tableyle yaptım..Problem de ordan kaynaklanıyor...Çok Sağolon allah razı olsun..Çok Açık kodlar Artık boynum kıldan ince ..Diyecek bir lafım yok....Herkese iyi çalışmalar...
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Kolay gelsin, bahtın ve yolun açık olsun.. Yıldızın parlasın. :lol: :lol: (son zamanlardaki şov-yarışma programları iyi dileklerinden) :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla