Fast Report'ta Toplama Yapma

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
volkancesur
Üye
Mesajlar: 53
Kayıt: 01 Nis 2007 09:47
Konum: DENİZLİ

Fast Report'ta Toplama Yapma

Mesaj gönderen volkancesur »

S.a. Arkadaşlar;
Fast Reportta Satırdaki veriyi Toplamak istiyorum ancak veri değişken içinde olduğundan dolayı çözemedim.
Yani [ALANADI] verisini değilde. [Memo1] içindeki verileri nasıl toplayabilirim.
Şimdiden Teşekkürler.
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Fast Report'ta Toplama Yapma

Mesaj gönderen csunguray »

Sonuçta Memo1 alanındaki veri bir eğişkenden gelmiyor mu? Yoksa bu değeri Memo1 in içerisine doğrudan elinizle mi yazıyorsunuz? Doğrudan elinizle yazıyorsanız Memo1 in içerisine doğrudan 15 yazmak yerine:

Kod: Tümünü seç

var
  Deger1: Integer;

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
  Deger1 := 15;
end;
gibi bir kod yazıp Memo1 in içerisine [Deger1] yazabilirsiniz.
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/)
volkancesur
Üye
Mesajlar: 53
Kayıt: 01 Nis 2007 09:47
Konum: DENİZLİ

Re: Fast Report'ta Toplama Yapma

Mesaj gönderen volkancesur »

@csunguray merhabalar;
Memo1'deki değer Memo2 ile Memo3 'ün hesaplanması sonucu ortaya çıkan değeri içermektedir.
Örneğin:
Ürün | B. Fiyatı | Miktarı | Toplam
Elma - 2.00 TL - 5 KG - 10 TL
Armut | 2,5 TL - 20 KG - 50 TL
...
...
...
_____________________________
TOPLAM :60 TL
Değer MasterDataya bağlı tablodan gelse sorun deilde Memonun içinden gelince SUM fonksiyonunu kullanamadım hesaplayamıyor. Toplam bir sonuç veriyor ama String ve integer değer olmasından mı yok başka bir sıkıntımı çözemedim.
Başına gelen var mı acaba veya bu şekilde birşey yazan ..
Kullanıcı avatarı
barutali
Üye
Mesajlar: 297
Kayıt: 02 Tem 2007 02:30

Re: Fast Report'ta Toplama Yapma

Mesaj gönderen barutali »

[SUM(<DATASETADI."TOPLANACAK_ALAN">,DetailData1)]
amatör küme programcı :D
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Fast Report'ta Toplama Yapma

Mesaj gönderen csunguray »

volkancesur yazdı:Memo1'deki değer Memo2 ile Memo3 'ün hesaplanması sonucu ortaya çıkan değeri içermektedir.
İyi de Memo2 ve Memo3 ün içerisindeki değerler nedir? Bir DB den mi geliyor? Yoksa elinizle mi yazıyorsunuz?
volkancesur yazdı:Değer MasterDataya bağlı tablodan gelse sorun deilde Memonun içinden gelince
Bir değer Memo'nun içinden gelmez. Olsa olsa Memo'nun içine gider.

Şöyle yapalım. Memo2 ve Memo3 ün değerlerinin bir DB'den geldiğini varsayarsak (Çünkü bir türlü senden öğrenemedik) ve DB değişken adlarının FIYAT ve MIKTAR olduğunu varsayarsak:

Kod: Tümünü seç

var
  Toplam: Double;

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
  Toplam := <MalzemeDB."MIKTAR"> * <MalzemeDB."FIYAT">;
end;
Memo1 içerisinde de [Toplam] yazarız. Toplam alırken de Summary bandındaki Memo içerisinde [SUM(<Toplam>, MasterData1)] gibi bir kod yazabiliriz.
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/)
volkancesur
Üye
Mesajlar: 53
Kayıt: 01 Nis 2007 09:47
Konum: DENİZLİ

Re: Fast Report'ta Toplama Yapma

Mesaj gönderen volkancesur »

@csunguray Merhabalar;
Aynen sizin dediğiniz gibi yaptığımda Sözdizimi Hatası Veriyor :(
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Fast Report'ta Toplama Yapma

Mesaj gönderen csunguray »

Sürekli yetersiz bilgi veriyorsunuz. Ne yazdığınızı buraya yazın ki ona bakıp hatanın nerede olduğunu bulmaya çalışalım.
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/)
volkancesur
Üye
Mesajlar: 53
Kayıt: 01 Nis 2007 09:47
Konum: DENİZLİ

Re: Fast Report'ta Toplama Yapma

Mesaj gönderen volkancesur »

Resim

Yaptığım İşlem Ekranda görüldüğü gibi . Sadece Toplamların Altına Toplam Alanının Altına Değerleri toplamak istiyorum.
Bu Şekilde Anlaşılır Umarım.
Şimdiden Teşekkürler
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Fast Report'ta Toplama Yapma

Mesaj gönderen csunguray »

Tek bir yere o kadar uzun bir formül yazmak yerine formülü parçalayarak kod içerisine yayalım.

Kod: Tümünü seç

var
  Toplam: Double;

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
  if <FirmaTeklifListesi."PARABIRIMI"> = '€' then
  begin
    Toplam := <FirmaTeklifListesi."TEKLIFFIYATI"> * <EURO> * <FirmaTeklifListesi."STOK">;
  end else
  begin
    if <FirmaTeklifListesi."PARABIRIMI"> = '$' then
    begin
      Toplam := <FirmaTeklifListesi."TEKLIFFIYATI"> * <DOLAR> * <FirmaTeklifListesi."STOK">;
    end else
    begin
      Toplam := <FirmaTeklifListesi."TEKLIFFIYATI"> * 1 * <FirmaTeklifListesi."STOK">;    
    end;
  end;
end;
Şimdi Toplam sahasına da tek yazacağımız [Toplam] olmalı. Summary bandında alt (genel) toplamı aldırırken alt toplam memo nesnesinin içine alttakini yazarız.

Kod: Tümünü seç

[SUM(<Toplam>, MasterData1)]
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/)
volkancesur
Üye
Mesajlar: 53
Kayıt: 01 Nis 2007 09:47
Konum: DENİZLİ

Re: Fast Report'ta Toplama Yapma

Mesaj gönderen volkancesur »

Aynı İşlemleri Yaptım ama Toplam Alanı Boş geliyor. Kontrol Etmem gereken başka birşey mi var acaba ?
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Fast Report'ta Toplama Yapma

Mesaj gönderen csunguray »

<EURO> ve <DOLAR> değişkenlerinin içeriği nereden geliyor?
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/)
volkancesur
Üye
Mesajlar: 53
Kayıt: 01 Nis 2007 09:47
Konum: DENİZLİ

Re: Fast Report'ta Toplama Yapma

Mesaj gönderen volkancesur »

Resim
Bu Şekilde Formdaki Veriyi Rapor Ekranına Taşıyorum.
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Fast Report'ta Toplama Yapma

Mesaj gönderen csunguray »

Eğer Form dedğiğiniz şey bir Delphi Formu ise bu değerleri raporun içerisine nasıl gönderiyorsunuz? Bunu yapmak için Delphi içerisinden raporun OnGetValue özelliğne:

Kod: Tümünü seç

procedure TFormStokR.ReportStokListesiGetValue(const VarName: String;
  var Value: Variant);
begin
  inherited;
  if VarName = 'EURO' then
  begin
    Value := FloatToStr(Edit1.Text);
  end;
  if VarName = 'DOLAR' then
  begin
    Value := FloatToStr(Edit2.Text);
  end;
end;
gibi bir kod ekleyin... Hatta öncelikle <EURO> ve <DOLAR> değişkenlerini rapordaki formülden çıkarıp raporu o şekilde deneyin ve sorunun o değişkenlerden kaynaklanıp kaynaklanmadığından emin olun.
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