Cari Hesapta Sınırlama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
recepseyis
Üye
Mesajlar: 25
Kayıt: 07 May 2009 12:53

Cari Hesapta Sınırlama

Mesaj gönderen recepseyis »

Cari Hesap Olayında ToplamBorc Alanı 100tl nın Uzerıne Geldiginde 1.Grid Musteriler 2.Grid Limit Asanlar
yani 2.grid datasourcesinde limti asanlar gozuksun boyle bişi mumkunmu acaba...
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: Cari Hesapta Sınırlama

Mesaj gönderen Lost Soul »

mümkün. ama bu soruyla mümkün değil :)

önce açıklayıcı bilgi vermelisiniz. örneğin veritabanı, tablo, grşdler dbgrid mi normal grid mi. işlemi nerde yapmak istiyorsunuz vs.vs.
recepseyis
Üye
Mesajlar: 25
Kayıt: 07 May 2009 12:53

Re: Cari Hesapta Sınırlama

Mesaj gönderen recepseyis »

Sql 2005 Veri Tabanı
DBGrid
Baska İstedıgın bilgi nedir
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: Cari Hesapta Sınırlama

Mesaj gönderen Lost Soul »

kinyeli bir konuşma sezinliyorum. amacım yardımcı olmak bilginiz olsun.
tablo alanlarını da verseydiniz daha açıklayıcı olurdu.
neyse
varsayımla cevap veriyorum.

sorunuzdan anladığım kadarıyla müşteri bilgileri ile müşteri borcunnu aynı tavloda tutuyorsunuz müşteri tablonuz şu olsun

TABLE MUSTERI

MUSTERIID : INTEGER;
MUSTERADI : STRING;
...
..
...

MUSTERBORCU : Double;


dbgrid dediğinize göre limiti aşanları da ayrı bir tablod tutoyrsunuz.

o zamaan
TABLE LIMITASANLAR
ID : INTEGER ;
MUSTERID : INTEGER;
MUSTERIADI : STRING
...
...
..

BORCU
....


tabloları erişmek için Dataset kullandığınızı varsayıyoyrum.


dataset ismi müşteri için TMUSTERI, limit açanlar için TLIMITASANLAR olsun.

Kod: Tümünü seç

with TMUSTERI do
   begin
   Close;
   SelectSQL.Clear;
   SelectSQL.ADD( SELECT * FROM MUSTERI WHERE MUSTERIBORCU>100); // borcu 100 liradan yukarı olanlar
   Open;
   First;
   While Not Eof do
       begin
       if  TLIMITASANLAR.Locate('MUSTERID',FieldByName('MUSTERID').Asinteger,[]) then TLIMITASANLAR.edit else TLIMITASANLAR.append;
    // eğer önceden limit aşımı eklenmişse düzenle yoksa yeni ekle. 


      TLIMITASANLAR.FieldByName('MUSTERIID').ASinteger:=FieldByName('MUSTERIID').Asinteger;
      TLIMITASANLAR.FieldByName('MUSTERIADI').AsString:=FfieldByName('MUSTERIADI').AsString;
      .....
      .....
      TLIMITASANLAR.FieldByName('BORCU').ASCurrency:=FieldByName('MUSTERIBORCU').AsCurrency;
      TLIMITASANLAR.Post;
       Next; // bulunan sonuçlar içinde sonrakine git. 
      End; // While not eof
End; // With TMUSTERI
tabi bu arada borcunu aşmamış olanları da teemizlemeyi unutmuyorsunuz.
veritabanına kaydettiğiniz zaman dbgridde zaten görünecektir.
ayaküstü bunu yazdım artık kendinize göre şekillendirisiniz.

mesela aşanlar tablosunu önceden temizleyip locate methodunu kullanmayabilirsiniz.
kolay gelsin.
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Cari Hesapta Sınırlama

Mesaj gönderen csunguray »

Form üzerine 2 tane Table (veya Query) nesnesi koyarsınız. İkisini de müşteriye bağlarsınız. Her biri için de birer tane DataSource koyarsınız. İki tane de DBGrid koyarsınız. DBGridleri DataSource a bağlarsınız. Sonra ilk Table'a propery editörden:

Kod: Tümünü seç

Table1.Filter := 'ToplamBorc < 100';
Table1.Filtered := True;
İkinci Table a propery editor'den

Kod: Tümünü seç

Table1.Filter := 'ToplamBorc >= 100';
Table1.Filtered := True;
seçersiniz. Bu kadar.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Cevapla