DbGrid Gösterimi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
delphi.coder
Üye
Mesajlar: 4
Kayıt: 17 Mar 2008 01:04

DbGrid Gösterimi

Mesaj gönderen delphi.coder »

Selamün aleyküm ;

Merhaba arkadaşlar.Ben delphi ile ilgilenmeye yeni başladım.Bu yüzden bir kaç takıldığım konu hakkında soru sorucaktım;

Access veri Tabanı kullanıyorum, 2 tane tablom var bunlardan 1. Musteri adında , 2. ise Hareket adında.
Musteri tablosu alanları;
StokHesapID
Hesap
StokKartiID
Sorumlu

Hareket tablosu alanları;
StokHareketID
StokKartiID
Eklenen
Odenen

olarak tanımlı.Musteri ve Hareket tablolarında StokKartiID kısımları birbirine bağlantılı..

Delphi Projemde ise 1 tane ADOConnection, 2tane ADOTable ,1 tane ADOQuery ,1 taneDBGrid1, 3 tane DataSource var .Bunlar arasındaki bağlantı ise;

ADOConnection --- veritabanına bağlı,

1.ADOTable --- ADOConnection bağlı ve Musteri tablosu seçili,

1.DataSource --- ADOTable 'la bağlı ,

2.ADOTable --- ADOConnection bağlı ve Hareket tablosu seçili,

2.DataSource --- ADOTable 'la bağlı ,

ADOQuery ADoConnection bağlı ,DataSource kısmı 2.DataSource bağlı ,Sql Kodu:

Kod: Tümünü seç

SELECT Musteri.Hesap, Musteri.StokKartiID, Sum(Hareket.Eklenen-Hareket.Odenen) AS Bakiye
FROM Musteri, Hareket
WHERE (((Musteri.StokKartiID)=Hareket.StokKartiID))
GROUP BY Musteri.Hesap, .StokKartiID;
3.DataSource --- ADOQuery 'ye bağlı ,
DBGrid1 ise 3.DataSource bağlı ,

Ben Musteri tablosuna giriş yapınca yeni müşterinin Hesap,StokKartiID ve Bakiyesini 0Ytl olarak DbGrid de gösterilmesini istiyorum.Çünkü yeni eklenen müşteriye hareket tablosundan hiç giriş yapılmadı.Musteri tablosuna eklediğim yeni müşterinin Hareket tablosuna hiç kaydı girilmeden.Umarım anlata bilmişimdir.Yardımlarınızdan ötürü şimdiden teşekkür ederim.

Hayırlı günler...
delphi.coder
Üye
Mesajlar: 4
Kayıt: 17 Mar 2008 01:04

Re: DbGrid Gösterimi

Mesaj gönderen delphi.coder »

Selamün aleyküm;

Arkadaşlar soruyu soramadım yada anlatamdığım gerekçesi ile tekrarlıyorum.Yukarıda bahsi geçen Tablolardan Musteri tablosuna kayıt yapıyoruz ve Ben DbGrid'imde Hesap,StokKartiID Ve Bakiye Alanalrının gözükmesini istiyorum ve ilk Musteri tabloma kayıt ekeldiğimde Bakiye'nin 0Ytl olmsını istiyorum.Eğer ki daha sonra o Musteri adıyla Hareket Tablosuna kayıt eklersem ordaki Bakiyesi kaçsa DbGrid'imde onu göstermesini istiyorum.Fakat yukarıda ki SQL komutu ile sadece Hareketler tablosundaki kayaıtalrı gösteriyor.Bu konuda yardımcı olursanız sevinirim.

Hayırlı günler...
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: DbGrid Gösterimi

Mesaj gönderen aslangeri »

s.a.
eğer

Kod: Tümünü seç

Sum(Hareket.Eklenen-Hareket.Odenen)[/burdan dönen değer null oluyor ise
[code]coalesce(Sum(Hareket.Eklenen-Hareket.Odenen),0)
ile halledebilmen lazım. tabi accesde coalesce varsa.
olmazsa adotable ın fieldları üzerinde bakiye alanının onGetText eventında 0 yazdırabilirsin.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
delphi.coder
Üye
Mesajlar: 4
Kayıt: 17 Mar 2008 01:04

Re: DbGrid Gösterimi

Mesaj gönderen delphi.coder »

Sevgili aslangeri;

İlk olarak size teşekkür ederim.Çünkü daha dikkatli olmamı sağladınız.

Cevap:

Access Veri Tabanımızda Musteri Tablosuna Bakiye adında bir alandaha oluşturuyoruz

ADOQuery içerisindeki SQL kod satırı aşağıdaki ile değişicek ,

Kod: Tümünü seç

SELECT m.StokHesapID, m.Hesap, m.StokKartiID, m.Sorumlu, (select sum(eklenen-odenen) from hareket where stokkartiId = m.stokkartiID) AS Bakiye
FROM musteri m;
Hayırlı günler...[/b]
Cevapla