FastReportta Bakiye Bölümü Yapmak...(Çözüldü)

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
comlekciler
Üye
Mesajlar: 58
Kayıt: 17 Nis 2006 12:35

FastReportta Bakiye Bölümü Yapmak...(Çözüldü)

Mesaj gönderen comlekciler »

Selam arkadaşlar;

Ufak bir sorunum var ama (daha doğrusu ben öyle düşünüyorum :roll: ) işin içinden çıkamadım. Yaptığım bir veritabanı programında ana tabloda müşteri bilgilerinin kaydı yani adı soyadı tarzı klasik bilgilerin yanında toplam bakiyesi tutuluyor, detay tabloda da geldiği tarih, yaptığı alışverişin açıklaması, borcu, yaptığı ödeme tutuluyor.

Bu bilgileri FastReport Kullanarak rapor olarak veriyor. Buraya kadarda bir sorun yok. Sorun daha sonra bu programda aynı banka ekstrelerinde olduğu gibi bir bakiye bölümü olması gerekiyor ama programı baştan o şekilde düşünmediğimiz için şimdi bakiye kısmını yapamadım.

Yani demek istediğim müşteri 29.09.2006 tarihinde bir ürün aldı ve borcu 10TL yaptığı ödeme 6TL ben buraya kadar kayıdını tutuyorum. Kaydet dediğimiz zamanda 10-6=4TL deyip anatablodaki müşterinin toplam bakiye kısmına kayıt yapıyor. Müşteri Tekrar geldiğinde 30.09.2006 tarihinde başka bir ürün aldı ve borcu 15TL ödeme 10TL kaydet dediğimizde 15-10=5TL sonucuna toplam bakiyede önceden borcu veya alacağınıda ekleyerek 5+4=9TL şeklinde anatabloya tekrar kaydediyor. İstediğim ise rapor hazırlandığı zaman;

Kod: Tümünü seç

TARİH      - ÜRÜN İSMİ - BORCU - ÖDEME - BAKİYE
29.06.2006 - Ürün      - 10    - 6     - 4
30.09.2006 - Ürün      - 15    - 10    - 9
şeklinde bakiye kısmını yazdırmak. Programı baştan bu şekilde yapmadığım için sonradan yapmam gerekiyor. Acaba yazdırma sırasında FastReporta nasıl yaptırabilirim? Bendeki bakiye bölümü kaydını ana tablodaki toplam bakiye şeklinde kayıt yapıyor yani 9 kayıdını yaptığı zaman önceki 4 kaydı başka bir yerde tutulmadığı için gidiyor.

İnşallah anlatabilmişimdir. Yardımlarınız için şimdiden teşekkürler.
En son comlekciler tarafından 30 Eyl 2006 04:42 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
"Bilgisizlerin geçtikleri mevkiye yaptığı fenalığı, yüzlerce aslan bir araya gelse yapamaz" MEVLANA
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Hangi veritabanı olduğunu yazmamışsınız :!: Anladığım kadarı ile master tablodan bakiyeyi okumak istiyorsunuz. Onun için detay tabloda her borçlandığında ve her ödeme yaptığında bir trigger ile top_borc ve top_alacak alanlarına borcunu ve alacağını (ödeme) ekleyip daha sonrada top_borc - top_alacak işleminden kalan sonucu toplam borcu olarak yazdırabilirsiniz. Ya da detay tablodan SUM fonksiyonu (SQL) ile borçları ve alacakları ayrı ayrı toplatıp arasındaki farktan yine toplam borcunu bulabilirsiniz. Ürün bazında bir kalan borç raporu almak istiyorsanız detay tabloyu raporlatırken rapor içinde tanımlayıp kullanacağınız genel/global bir değişkende BeforePrint da toplatıp yazdırabilirsiniz. Ya da yine raporda SUM (fastreport) foksiyonu ile toplam aldırabilirsiniz.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
comlekciler
Üye
Mesajlar: 58
Kayıt: 17 Nis 2006 12:35

Mesaj gönderen comlekciler »

rsimsek yazdı:Hangi veritabanı olduğunu yazmamışsınız :!: Anladığım kadarı ile master tablodan bakiyeyi okumak istiyorsunuz. ....
Selam

FireBird veritabanını kullanıyorum. Hayır master tablodan bakiye bilgisini okumak istemiyorum. Master tablodaki toplam bakiye bilgisine her işlemden sonra müşterinin toplam bakiye bilgisini kayıt yapıyor. Yani bir önceki bakiye bilgisi gidiyor. Yukarıda da anlatmaya çalıştım. Yukarıdaki kod bloğunun içindeki bakiye bölümü veritabanı içinde kayıtlı değil. Rapor sırasında oluşturmam gerekiyor. Benim sorunum yukarıda müşteri ilk gelişinde 4TL olan bakiye bilgisi ikinci gelişinde gidiyor yerine 9 bilgisi kayıt yapılıyor. Ama ben raporlarken 4 bilgisini müşteriye göstermem gerekiyor aynı banka ekstre bilgilerinde olduğu gibi.
"Bilgisizlerin geçtikleri mevkiye yaptığı fenalığı, yüzlerce aslan bir araya gelse yapamaz" MEVLANA
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Master tabloya zaten tek bir bakiye kayıt edebilirsiniz. Bunu da üzerine toplatarak yaparsanız son bakiyesi görünecektir. Yapmak istediğinizde raporlatırken de borç, alacak ve bakiye diye üç kolon şeklinde ve bakiye kolonunu diğerleri ile ilişki kurarak hesaplatabilir, sonunda da bu kolonu toplatarak (SUM) son borcunu tek kalem halinde alabilirsiniz diye düşünüyorum.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
selimr
Üye
Mesajlar: 556
Kayıt: 16 Eki 2003 02:07

Mesaj gönderen selimr »

şuraya bir bak istersen.. işine yarayabilir..

viewtopic.php?t=8141&highlight=k%FCm%FClatif
Kullanıcı avatarı
comlekciler
Üye
Mesajlar: 58
Kayıt: 17 Nis 2006 12:35

Mesaj gönderen comlekciler »

Cevaplar için teşekkürler arkadaşlar,

Cevabı yine bizim sitemizde buldum. :)

DelphiTürkiye

Şu anda ufak bir sorunum daha var ama sanırım bunu çözebilirim. :roll:

Tekrar teşekkürler.
"Bilgisizlerin geçtikleri mevkiye yaptığı fenalığı, yüzlerce aslan bir araya gelse yapamaz" MEVLANA
Cevapla