dbgrid satırını label de gösterme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

dbgrid satırını label de gösterme

Mesaj gönderen bobasturk »

merhaba arkadaşlar;

Kod: Tümünü seç

VAR
  tarih1,tarih2:tdate;
begin
 ibquery2.Close;
 ibquery2.SQL.Clear;
 ibquery2.SQL.Add('select ISTOLYTURU, INCTARIHI, COUNT(*) AS ADET');
 ibquery2.sql.Add('from RAPORLAR');
 ibquery2.SQL.Add('where INCTARIHI between :tarih1 and:tarih2');
 ibquery2.SQL.add('group by ISTOLYTURU, INCTARIHI');
 ibquery2.ParamByName('tarih1').AsDate:=strtodate('01.01.2004');
 ibquery2.ParamByName('tarih2').AsDate:=strtodate('31.01.2004');
 ibquery2.Open;

end;
yukarıdaki kod ile sonuçları dbgrid üzerinde gösteriyorum şöleki

Kod: Tümünü seç

ISTOLYTURU        INCTARIHI     ADET
EVDEN HIRS.       01.01.2004       2
İŞYERİNDEN HIR.   02.01.2004       2
burada yapmak istediğim şey istatistik. dbgride dökülen bu sonuçların ADET stununda bulunan değerleri tek tek label lerde göstermek istiyorum.

misalen label1.caption:=dbgridin adet sütunundaki birinci tarında yazan rakam olacak.

teşekkürler kolay gelsin
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2381
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Kod: Tümünü seç

ISTOLYTURU        INCTARIHI     ADET
EVDEN HIRS.       01.01.2004       2
İŞYERİNDEN HIR.   02.01.2004       2 
burda Tarihi kaldırmak bana daha mantıklı geldi. çünkü o gün içinde olmuşlarıda satır satır dökecek. Tarihi kaldırırsan sadece ISTOLYTURU olanları gruplarsın. Tarih aralığınıda zaten vermişsin.
labellar kullanmak yerine listview kullanabilirsin. yada stringgrid. query yi açtıktan sonra baştan sona kadar bir döngü kurup listview yada stringgrid içine alman bana daha mantıklı geliyor.
Label yapmak zorunluluğu varsada, lable ları manual olarak create etmen gerek. tabi gene döngü içinde.

kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

teşekkürler ustam,

buradaki INCTARIHI deneme amaçlı idi kodda geçen ISTOLYTURU ve ADET alanlarını dbgrid üstünde gösterince bunu da yazarsam nasıl olur diye bakmak için yazmıştım.

label kullanmam daki amaç görüntü açısından diyebilirim, çıktı aldığımız istatistik formuna benzetmek için ayrıca bu istatistik bu kadarla kalmayacak 12 aya göre yapacağım. epeydir buna çalıyıyorum anca bu dadar yol katedebildim.

yukarıdaki örnekte ISTOLYTURU alanı alt altta 11 çeşit olay içeriyor bunların her ay için toplamlarını aldırıp istatistikte göstermem gerekiyor. baya zorlayacak heralde. forumdaki örnekleri inceledim yapmaya çalıştım ama başım ağrıyor bazen. baya zorlayacak heralde.

yinede teşekkür ederim kolay gelsin
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2381
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

FB de aylara göre sorgulama ile ilgi soru ve cevap geçmişti. burdan aylara göre kayıt alırsın. ISTOLYTURU a göre grupladıysan bunları stringgrid yada listview a atarsan görünümde, kullanılırlığıda güzel olur. ayrıca bunu bir Stored Procedure içinde yaparsan direk dbGrid içindede gösterebilirsin

kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

ustam, merhaba

tavsiyen üzere araştırıyorum. şu listview de göstermeyi çözemedim arama sonucuda bulduklarımda kavrayamadım ve kitaptan da okudum yine olmadı örneklerde query den çekmeyi göstermiyor. küçük bi ipucu verebilirmisin üzerinde çalışsam. hani leblebi diyecez de leb diyerek ipucu veriyoruz.

teşekkür ve saygılarımla
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

DbCtrlGrid bilesenini ekranda gosterilecek satır ve sutuna gore ayarla
mesela 15 satır 1 sutun seklinde
her hucrenin yukseklik ve genisliginide ayarla,
icine tam sıgacak kadar bi DbLabel ekle ve sorgudaki ilgili alana bagla
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

Gökmen ustam,

sana ve diğer ustalarıma teşekkür ederim. bir şey daha öğrenmiş olduk sayenizde.

şu düşüncem doğrumu diye sormak istiyorum. diğer yollardan şimdilik yapmayı başaramadım.

yukadıraki kodda verilen tarih aralığında istatistiği alıyorum bunu formcreate veya button onclick olayına alt alta 12 ay için yazarak bir yıllık istatistiği form üzerinde göstermek istiyorum. hamballık olduğunu biliyorum ama şimdilik bu şekli düşündüm.

ne dersiniz acaba....

teşekkür ve saygılarımla
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2381
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

açık söyliyeyim listview çok oldu kullanmayalı tam kullanımını unuttum. stringrid ise malumunuz sanırım.
direk dbgrid kullan bence. bir sp yaz. Row lar ISTOLYTURU yı göstersin

Kod: Tümünü seç

    V_MOUNTH = 1;
    WHILE (V_MOUNTH <= 12) DO BEGIN
     FOR select ISTOLYTURU, COUNT(*) AS ADET
            where extract(INCTARIHI) = V_MOUNTH
            group by ISTOLYTURU
             INTO :ISTOLYTURU,
                     : ADET;
     do begin
        if ADET IS NULL then ADET = 0;

        if (V_MOUNTH = 1) then OCAK = ADET;
        if (V_MOUNTH = 2) then SUBAT = ADET;
    ....................
     end;
    V_MOUNTH = V_MOUNTH + 1;
............
karışık oldu gibi ama sanırım fikir verir bu kafayla anca bukadar fikir çıktı :P SP içinde aylarıda birer Field halinde dışarıya çıkartabiliyorsun

Kod: Tümünü seç

ISTOLYTURU    OCAK   SUBAT   MART .............
---------------   -------   ---------  --------
kırkızlık             0           2             10
.......               x           x            xx
şeklinde dbgrid içinde gösterebilirsin

kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

freeman ustam,

sanırım yoğun bi gün oldu. gerçekten allah size kuvvet versin. yardımlarınız için teşekkür ederim. yeni bir kafayı yiyecek konu çıktı karşımıza gece yarılarına kadar uğraşırım şimdi.

ama inşeallah sökeriz böle öğrenmek daha kalıcı oluyor. hazır olanını hemen unutabiliyor insan.

kolay gelsin.
Kullanıcı avatarı
Serim
Üye
Mesajlar: 194
Kayıt: 08 Ara 2004 03:32
Konum: Konya

Mesaj gönderen Serim »

Sorunusu tam olarak doğrumu anladım bilmiyom ama bendende dbgridi herhangi bir satırını çift tıklayınca dbgridin o satırını form2 deki labellarda göstermem istenmişti.ben kullandığım kodları gönderiyim umarım işinise yarar...

procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
form2.label1.Caption:=dbgrid1.columns.grid.fields[0].text;//Grid in 0. alanını label a gönder
form2.label2.Caption:=dbgrid1.columns.grid.fields[1].text;
form2.label3.Caption:=dbgrid1.columns.grid.fields[2].text;
form2.label4.Caption:=dbgrid1.columns.grid.fields[3].text;
form2.Show;
end;

iyi çalışmalar, kolay gessin.
Bilginin temelini sağlam at depremde zarar görmesin
Misafir

Mesaj gönderen Misafir »

merhaba.
daha önce biçok program inceledim..yazdığımız projelerde de kullandığımız bileşen hep stringgrid oldu.kontrolü daha kolay oluyor çünkü dbgridin direkt tablo bağlantısı çok iyi kontrol olmadığı zaman ciddi bir risk oluşturuyor.
kolay gelsin.
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

merhaba ustalarım,

evet bende projede stringgrid kullandım ve formlar üzerinde on iki ayın dökümünü tam olmasada istediğim şekilde aldım ve tarih aralıklarını da bi tablo oluşturdum ve oradan aldırdım. bölelikle yıl başlarında o tablodaki tarihlerin yıllarını değiştirerek istatistiki bilgileri alacağız.

konyalı arkadaşım anladığım kadarı ile verdiğin kod da döngü sonucu alanlara tek veri geliyor. bizimkinde ise alanda 11 değişken veri var bunların toplamları lazım idi. yapılan sorgu sonucu dönen verilerde stringgrid de istenildiği gibi dökülüyor. sanırım freeman ustamın dediği gibi ve daha önce naile ustamın dediği gibi asıl bu iş vt tarafında hallolucak sp yazarak ve bu dönen sonuçları delphi tarafında edit lerde göstererek. umarım bunuda başarırız.

hepinize teşekkürler
kolaylıklar diliyorum.
Cevapla