DBGrid Üzerinde CalcField Sütunun Toplamını Almak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Re: DBGrid Üzerinde CalcField Sütunun Toplamını Almak

Mesaj gönderen aLonE CoDeR »

- seleme
- nebere?
- iii sen?
- iii

Nedir bu 2 harf eksik yazmaktan üşenme gayreti, 2 harf daha yazınca kaybedeceğiniz (azami) 2 saniye çok mu ciddi bir kayıp? Türkçeyi katletmeyelim, katledenlerin dikkatini çekelim, uyaralım, uyandıralım, uyanık olalım..

Yazılan, çizilen, fikir beyan edilen onca şeyden sonra ben aklını biraz daha karıştırmak istiyorum. Anladığım kadarıyla öyle çok ciddi bir hareket girişi olmayacak belki 8-10 bilemedin 20 hareketlik bir fiş girişi. Ben calculation field kullanımına da anlam veremeyenlerdenim ayrıca. Kullandığın grid nesnesinin ColEnter ve/veya ColExit eventlerini kullanarak, kullandığın dataset nesnesini disable moda alarak, bulunduğun kaydı bir bookmarkla işaretleyerek, ilk satırdan itibaren son satıra kadar bir döngüyle basit dört işlem yapmak suretiyle sonuca gitmen, Şaban'ın yöntemine haksızlık olsa da daha kullanışlı olacaktır. Bunları yazma nedenim, yazdığın kodlara, geliştirdiğin projeye ve kullandığın yazılım aracına hakim olmanın gerekliliğini dile getirmektir.

Kolay gele.
Kullanıcı avatarı
canset
Üye
Mesajlar: 151
Kayıt: 19 Haz 2005 12:38

Re: DBGrid Üzerinde CalcField Sütunun Toplamını Almak

Mesaj gönderen canset »

Sayın Yalnız Kodcu;

Tarif ettiğiniz yöntem, dbgrid satırlarında manuel oynama imkanı sağlayacak mı? Calculated alanı kullanıcıya kolaylık olması açısından ekledik, kullanıcı sattığı 10 adet aynı ürünü arka arkaya 10 kez barkod okutturmadan dbgrid miktar satırından ayarlama yapabilecek. Veya aynı şekilde fiyat değişikliğine gidebilecek.(Asıl önemli olan da bu, miktar işini bir edit ile halledebiliriz) Sizin yönteminiz de bu şekilde esneklik sağlayabilecekse tabii ki onu da uygulamak isterim. Ama daha henüz GenelToplam kısmının sorununu halledemedim.
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Re: DBGrid Üzerinde CalcField Sütunun Toplamını Almak

Mesaj gönderen aLonE CoDeR »

Veri girişi için (barkod ya da miktar) ayrıca edit nesnesine gerek de yok, grid üzerinden de yapılabilir bu. Ve bahsettiğim yöntemle toplam hesaplamayı da miktar fiyat değişimlerini de yapabilirsin.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: DBGrid Üzerinde CalcField Sütunun Toplamını Almak

Mesaj gönderen aslangeri »

s.a.
on calcfields da heapla dan sonra edttoplamın text ini set etmişsin. hesapla zaten o işi yapıyor. hesapladan sonra tekrar edttoplamı set etmeyeceksin .

Kod: Tümünü seç

procedure TFormsatis.ADODataSettamponCalcFields(DataSet: TDataSet);
begin
adodatasettampontutar.Value:= (adodatasettamponmiktar.Value*adodatasettamponfiyat.Value)-
(adodatasettamponmiktar.Value*adodatasettamponfiyat.Value*
adodatasettamponiskonto.Value)/100;

Hesapla(formsatis.ADODataSettamponid.Fieldbyname('id').AsInteger);
//hesapla da zaten edgeneltoplam set ediliyor. aşağıdaki satır olmayacak.
//edGenelToplam.Text:= strtofloatdef(edGenelToplam.Text,0)+adodatasettampon.Fields[4].Value;
end;
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
canset
Üye
Mesajlar: 151
Kayıt: 19 Haz 2005 12:38

Re: DBGrid Üzerinde CalcField Sütunun Toplamını Almak

Mesaj gönderen canset »

Aleykümselam aslangeri;

Daha önce sizin verdiğiniz kodları aynen yazdım, ekstradan birşey eklemedim. Dediğiniz şekilde alt satırı devre dışı bırakıp denedim daha önce, o şekilde de problem var, ilk okutulan ürünü hiç görmüyor ve önceki tarif ettiğim hata aynen devam ediyor.
Kullanıcı avatarı
canset
Üye
Mesajlar: 151
Kayıt: 19 Haz 2005 12:38

Re: DBGrid Üzerinde CalcField Sütunun Toplamını Almak

Mesaj gönderen canset »

Bir de afterpost ta hesapla(-1) işlevi nedir, onu çözemedim??
Kullanıcı avatarı
canset
Üye
Mesajlar: 151
Kayıt: 19 Haz 2005 12:38

Re: DBGrid Üzerinde CalcField Sütunun Toplamını Almak

Mesaj gönderen canset »

Kesinlikle birşey gözden kaçırılıyor ama ne? İlgili eventlerde değişik varyasyonlar denedim ama hiçbirisi olmuyor. Üstadlar, boş vaktinizde bir göz atarsanız sevinirim.

Kod: Tümünü seç

procedure TFormsatis.ADODataSettamponCalcFields(DataSet: TDataSet);
begin
adodatasettampontutar.Value:= (adodatasettamponmiktar.Value*adodatasettamponfiyat.Value)-
(adodatasettamponmiktar.Value*adodatasettamponfiyat.Value*
adodatasettamponiskonto.Value)/100;

Hesapla(formsatis.ADODataSettamponid.Fieldbyname('id').AsInteger);
edGenelToplam.Text:= strtofloatdef(edGenelToplam.Text,0)+adodatasettampon.Fields[4].Value;

End;
Yukarıdaki kod ile; dbgrid üzerindeki ilk değişikliklerde sıkıntı görünmüyor ama aynı üründe 2. bir değişikliğe başvurduğumuzda extradan 1 tutar miktarı daha GenelToplam'a ilave oluyor.

edGenelToplam.text satırını çıkardığımızda ise; dbgride ilk aktarımı hiç görmüyor, 2. 3. 4. aktarımlarda ise yine dbgrid üzerinde 2. oynamalarda tutar kadar extra tutar ekliyor GenelToplam'a...

Son durum bu şekilde...
Kullanıcı avatarı
canset
Üye
Mesajlar: 151
Kayıt: 19 Haz 2005 12:38

Re: DBGrid Üzerinde CalcField Sütunun Toplamını Almak

Mesaj gönderen canset »

Haydi üstadlar, bir el atmanızı rica edecem, ilerleyemiyorum çalışmamda :(
Kullanıcı avatarı
canset
Üye
Mesajlar: 151
Kayıt: 19 Haz 2005 12:38

Re: DBGrid Üzerinde CalcField Sütunun Toplamını Almak

Mesaj gönderen canset »

Bu kadar zor mu istediğim kod, okuyan kaçıyor :(
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: DBGrid Üzerinde CalcField Sütunun Toplamını Almak

Mesaj gönderen conari »

Sen projeni ve db yi (ilgili kısımları sadece) dosya olarak paylaş bir şekilde yapıp ekleyelim.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
canset
Üye
Mesajlar: 151
Kayıt: 19 Haz 2005 12:38

Re: DBGrid Üzerinde CalcField Sütunun Toplamını Almak

Mesaj gönderen canset »

http://www.upload.gen.tr/d.php/www/wtvq ... 1.rar.html

Çalışmamı buraya yükledim...

İlave olarak;
Forumda tavsiye edilen JediJVC setini de indirip kurdum ama onu nasıl kullanacağımı daha bilmiyorum. İçerisindeki memtable 'ın bu işlerini çözdüğünü okudum bir makalede...Onu da göz önüne alabilirsiniz...
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: DBGrid Üzerinde CalcField Sütunun Toplamını Almak

Mesaj gönderen conari »

iyide ben satış yapmadan nasıl test edeceğim, barkod okutmadan nasıl satış yapılıyor.
Birde 5 tane aynı VT ye connection kurmuşsun. hepsini tek bağlantı yapsanız daha iyi olmazmı?
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
canset
Üye
Mesajlar: 151
Kayıt: 19 Haz 2005 12:38

Re: DBGrid Üzerinde CalcField Sütunun Toplamını Almak

Mesaj gönderen canset »

conari hocam, ürün tablosunda barkodları görüyorsun zaten, 100-101-102 ....gibi...veya kendin yeni bir barkodla yeni bir ürün girebilirsin, sorun değil...

edit1 in onkeypress inde tablotampona aktarım. edit1 e 100 yaz enter la, tampona aktarıyorsun zaten...

vt konusunda haklısın, ilk kez access ve ado kullanıyorum, connection daha yeni öğrendiğimden öyle, onu düzeltiriz...
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: DBGrid Üzerinde CalcField Sütunun Toplamını Almak

Mesaj gönderen conari »

Bakamadım kusura bakmayın, hafta sonu bakmaya çalışacağım.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
canset
Üye
Mesajlar: 151
Kayıt: 19 Haz 2005 12:38

Re: DBGrid Üzerinde CalcField Sütunun Toplamını Almak

Mesaj gönderen canset »

conari yazdı:Bakamadım kusura bakmayın, hafta sonu bakmaya çalışacağım.
Bu kadar bekledik, birazcık daha bekleriz, sorun yok.
Cevapla