quick report ve gruplandırarak toplam alma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
TURGUT
Üye
Mesajlar: 54
Kayıt: 27 May 2005 03:19
Konum: ANKARA/ETİMESGUT

quick report ve gruplandırarak toplam alma

Mesaj gönderen TURGUT »

s.a kolay gelsin;

arkadaşlar quick reportta tıkandım programımda kasadan şahıslara olan borç ve alacakları takip ettiğim bölüm var raporlamak istiyorum.Aynı şahısa ait birden fazla hareket olabiliyor.raporda tek kayıt halinde borç ve alacak toplamlarını sorununu aştım şimdi o şahsa ait bakiyeyi bulmakta..
veritabanı:
hesap_no----borc-------alacak
turgut--------200
mustafa ------------------150
mustafa -----100
turgut----------------------50

Rapor:
Hesap-----borç---alacak---bakiye
turgut-----200-----50----------?
mustafa---100----150---------?
araçlar: quickreport,paradox,delphi 7.0,query kullanıyorum
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Bu işi

Kod: Tümünü seç

select hesap_adi, sum(borc), sum(alacak) 
from tablo 
where şartlar
group by hesap_adi
yapısına uygun şekilde Query nesnesi kullanarak yapabilirsin. Hesap adını muhtemelen başka bir master tablodan alıyorsundur. O zaman da join ile o tabloyu da bağlaman gerekiyor.

Kod: Tümünü seç

select h.hesap_adi, sum(har.borc), sum(har.alacak) 
from tablo har, hesap h
where har.hesap_id = h.hesap_id and şartlar ...
group by h.hesap_adi
gibi..
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
Master_Yoda
Üye
Mesajlar: 35
Kayıt: 13 Ara 2005 12:57

Mesaj gönderen Master_Yoda »

quickreport ta dbtext gibi bir qrexpr componenti var
bundan koyup expression bölümüne borc-alacak yazabilirsin.

ayrıca eğer bakiyen kümülatif bir bakiye olacaksa

örneğin :

Kod: Tümünü seç

ali    100     0   100 
veli    50     0   150 
ayse    0    10  140 
Bu durumda en kestirmesi raporun beforeprint eventinde bakiye:=0;
detail bandın before print eventinde bakiye:=bakiye+(qxBorc.value-qxAlacak.Value);
detail banda qrlabel componenti koyup bu componentin onprint eventinde value:=format('#,##0.00',bakiye);
yazarak almak.
Paradox ve BDE LocalSQL yetenekleri ile bu işi çözmek zor olur .
TURGUT
Üye
Mesajlar: 54
Kayıt: 27 May 2005 03:19
Konum: ANKARA/ETİMESGUT

Mesaj gönderen TURGUT »

rsimsek hocam teşekkür ederim gruplandırma ve toplam alma işleminde sorun yok(sizin önerdiğiniz gibi yapmıştım).Benim istediğim bakiyeyi hesaplatmak;

Kod: Tümünü seç

hesap_no     borc       alacak          bakiye
mustafa       150             0                ?
turgut          100            75               ?
burda tecrübenize ihtiyacım var..
TURGUT
Üye
Mesajlar: 54
Kayıt: 27 May 2005 03:19
Konum: ANKARA/ETİMESGUT

Mesaj gönderen TURGUT »

master-yoda bey qrexpr kullanıyorum burda borc ilgili sahsa ait borc toplamı giderde aynı,sizin dediğiniz gibi kullanamıyorum( borc-alacak ) hayır kümülatif bir bakiye istemiyorum sonunda toplam bakiye aldırıyorum zaten sadece;

Kod: Tümünü seç

                                bakiye
turgut    150     25        125
mustafa  200    50        150 burayı vermsei yeterli
eğer cevabınızı biraz açarsanız sevinirim.
Kullanıcı avatarı
Master_Yoda
Üye
Mesajlar: 35
Kayıt: 13 Ara 2005 12:57

Mesaj gönderen Master_Yoda »

qrexpr de expression a borc-alacak yazmanız yeterli
TURGUT
Üye
Mesajlar: 54
Kayıt: 27 May 2005 03:19
Konum: ANKARA/ETİMESGUT

Mesaj gönderen TURGUT »

Kod: Tümünü seç

select hesap_adi, sum(borc), sum(alacak) 
from kasa 
group by hesap_adi
daha önce hesap noyu gruplandırmıştım. Bakiyeyi de expressions'a;

Kod: Tümünü seç

query1.sum(borc)-query1.sum(alacak)

toplam bakiyeyide

Kod: Tümünü seç

(query1.sum(borc))-(query1.sum(alacak))

bu şekilde hesaplattım teşekkür ederim...
Kullanıcı avatarı
Master_Yoda
Üye
Mesajlar: 35
Kayıt: 13 Ara 2005 12:57

Mesaj gönderen Master_Yoda »

sanirim asil problem select içinde expression olan kolonlara isim vermemenden kaynaklanmis son yazdigin quick report expressionlari biraz tuhaf ..
selecti şöyle yazsan

Kod: Tümünü seç

select hesap, sum(borc) as toplamborc, sum(alacak) as toplamalacak
from kasa
ozaman selecten toplamborc ve toplamlacak adli iki saha gelir ve bu sahalari daha kolay expressionlarda kullanirsin..
Cevapla