paradox tabloda borc alacak bakiye

Diğer veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
akuyumcu63
Üye
Mesajlar: 386
Kayıt: 02 Tem 2007 09:43

paradox tabloda borc alacak bakiye

Mesaj gönderen akuyumcu63 »

değerli arkadaşlar;

benim hareketler adında bir tablom var. bu tabloda borc ve alacak sütunları var. tabloda ek olarak bakiye sutunu oluşturdum. borc ve alacak sütünlarına girilen değerlere göre müşterinin bakiyesinin bakiye sütununda hesaplanmasını istiyorum.

Borc Alacak Bakiye
50 0 50
0 30 20
40 0 60
0 80 -20
70 0 50





yukarıda belirttiğim gibi dbgridte işlem yapmaya çalıştım ama bir türlü olmadı. formda bu konu ile alakalı mesajlara da baktım ama bir sonuca uluşamadım.
şimdidem teşekkürler.
      [/list]
      Kullanıcı avatarı
      aslangeri
      Moderator
      Mesajlar: 4322
      Kayıt: 26 Ara 2003 04:19
      Konum: Ankara
      İletişim:

      Mesaj gönderen aslangeri »

      s.a.
      ttable bileşeninin üzerine iki kere tıklayın.
      fields editör açılıyor orada sağ tıklayın newfield deyin.
      newfield editör açılacak.
      ordan alanın adını ve tipini belirtin. fieldtipi olarak calculated seçin.
      tamam deyin kapatın.
      sonra ttable bileşenini tekrar seçin oncalcfields olayına gelin ve burada bakiye hesaplama işlemini yapın.

      Kod: Tümünü seç

      dataset['bakiye'].value:=dataset['borc'].value-dataset['alacak'].value
      gibi bişey olacak.
      kolay gelsin.
      Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
      Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
      Kullanıcı avatarı
      esistem
      Üye
      Mesajlar: 464
      Kayıt: 02 Eki 2007 11:22
      İletişim:

      Mesaj gönderen esistem »

      selamlar;
      aslangeri arkadaşımın dediği gibi yapacak olursanız maalesef istediğiniz sonuca ulaşamazsınız, çünkü (anladığım kadarıyla) siz bir kayda ait borç ve alacak verilerini tarih sırasında alt alta sıralayıp (alış faturası,satış fat., nakit tahsilat,nakit ödeme vs. gibi) her satırda da o tarihe (satıra) ait bakiyeyi görüntülemek istiyorsunuz sanırım.
      Örn :
      Satış faturası : 50 <B> Bakiye :50 <B>
      Nakit Tahsilat : 20 <A> Bakiye :30 <B>
      gibi.

      bunun için ben şöyle bir yöntem kulanıyorum;
      öncelikle yeni bir tablo(ekstre.db gibi) oluşturun, burda görmek istediğiniz alanları yazın;
      KOD : INTEGER (AUTOINCREMENT)
      TARIH : DATE (INDEXLI)
      TURU : BYTE (0:ALIŞ FAT,1:SATIŞ FAT,2:NAKİT TAH,3:NAKİT ÖDEME)
      TUTARI : CURRENCY
      BAKIYE : CURRENCY
      BAKIYETURU : ALFASAYISAL (10)

      Bunu oluşturduktan sonra zaten işiniz bitmiş oluyor, raporla butonuna basılınca önce bu tabloyu temizleyip, sonra fatura, kasa vs. tablolardan bu kayda ait kayıtları tek tek bunun içine atın. Sonra bu tabloyu baştan sona saydırıp (eğer grid kullanıyosanız data source leri iptal edin), her satırda bakiyeyi hesaplayıp editle yazıp istediğiniz tarih aralığındaki bakiyeleri görüntüleyebilirsiniz.

      Umarım anlatailmişimdir.
      Kolay gelsin.
      akuyumcu63
      Üye
      Mesajlar: 386
      Kayıt: 02 Tem 2007 09:43

      Mesaj gönderen akuyumcu63 »

      s.a.

      aslangeri arkadaşımın dediğini zaten yapıyorum, dediğin gibi onun yazmış olduğu kod benim işimi pek görmüyor formda da bu konu için onun yazmış olduğu koddan çok vardı yinede tşk.

      sizin verdiğiniz bilgiler ışığında birşeyler yapmaya çalışacağım. formda bulduğum bir kod var

      "bakiye diye bir calcfield var oncaclcfileds a
      Kod:
      if fislerq.RecNo = 1 then toplam :=0;
      toplam := toplam + fislerqborc.AsCurrency-fislerqalacak.AsCurrency;
      fislerqbakiye.AsCurrency := toplam;"

      bu kod benim aradığım kod sistemi ama çalıştıramadım.
      Kullanıcı avatarı
      hakansozgen
      Üye
      Mesajlar: 38
      Kayıt: 16 Nis 2006 06:51
      Konum: istanbul
      İletişim:

      Mesaj gönderen hakansozgen »

      Her ne kadar pratikte olsa calcfields lar sadece bi görüntüden ibaret ve pek tavsiye edilmez. Çünkü hesaplanan değerler veritabanına kaydedilmez sadece sütunda durur. Bence bunun için tabloda ayrı bir alan açıp kayıtları döngü sayesinde hesaplatıp yeni alana atarsan daha sağlam olur.

      Kolay gelsin.
      akuyumcu63
      Üye
      Mesajlar: 386
      Kayıt: 02 Tem 2007 09:43

      Mesaj gönderen akuyumcu63 »

      sayın hakanozgen;

      fikrinize katılıyorum, dediğinizi düşündüm ama kafamda tam toparlayamadım. söylediğinizi kodlara dökmek benim için biraz zor örnek kodunuz varsa iyi olurdu.

      kolay gelsin;
      Kullanıcı avatarı
      White Rose
      Üye
      Mesajlar: 726
      Kayıt: 06 Tem 2005 09:41
      Konum: Güneyden
      İletişim:

      Mesaj gönderen White Rose »

      s.a.
      Sizin dediğiniz kümülatif bakiye
      bakınız,
      viewtopic.php?t=21266
      buradaki kodu dbgridin colexit olayında kontrol edebilirsiniz.
      akuyumcu63
      Üye
      Mesajlar: 386
      Kayıt: 02 Tem 2007 09:43

      Mesaj gönderen akuyumcu63 »

      bakiye olayını quickreport ta hallettik benim gibi paradox tablosu kullanan arkadaşlar varsa tablo üzerinden halletmek biraz zor rapor sayfasından halletmet için aşağıdaki linki kullanabilirsiniz


      Master_Yoda abimizin cevaplarına bakınız.

      viewtopic.php?t=2312&view=next
      Kullanıcı avatarı
      sabanakman
      Kıdemli Üye
      Mesajlar: 3077
      Kayıt: 17 Nis 2006 08:11
      Konum: Ah bi Antalya olaydı keşke (Ankara)

      Mesaj gönderen sabanakman »

      Malesef Calculate alanlarda kümülatif toplam alıp göstermenin basit bir yolu yok. Özellikle DBGridler için. Liste hallinde sıralama yapıp kayıtların raporlanması en basit yol olacaktır. Bu gibi bir önceki kaydın değerinden etkilenen değerler olduğu durumlarda kayıt sayısı kadar elemana sahip bir dizi kullanmak olacak ve bunu iyi organize etmek gerekecektir.
      Şaban Şahin AKMAN
      _________________
      Derin olan kuyu değil kısa olan iptir. - .
      Cevapla