Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Çözüldü - FastReport Pivot ve Group birlikte kullanılabilirmi ?
#1
Selamlar

FastReport üzerinde bir mütabakat mektubu hazırlamaya çalışıyorum
Bir Cari kaydın 3 yıllık yıl sonu mütabakatı yapılacak ve bunlar para birimlerine göre olacak 
işin kilit noktası her CARI değiştiğinde yeni bir sayfaya başlıyacak
Benim düşüncem bunu DBPivot ile hallederim diye düşündüm fakat 2 gündür işin içinden çıkamıyorum.

Denediğim yöntem Rapora gönderdiğim dataset üzerinden yola çıkarak
Rapora 
1 adet pageheader (Sabit üst bilgi yazısı için)
1 adet GroupHeader (CariID)
1 adet Master(Data için)
1 adet PageFooter(Sayfa sonu bilgisi için)

GroupHeader üzerine Pivot koydum olmadı, master üzerine koydum olmadı, Detail bant yapıp Child oluşturdum yine olmadı

Bu konuda benzer bir şey yapan arkadaşlardan yardımını rica ederim.

İyi Çalışmalar
   
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#2
(04-07-2019, Saat: 10:16)adelphiforumz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Selamlar

FastReport üzerinde bir mütabakat mektubu hazırlamaya çalışıyorum
Bir Cari kaydın 3 yıllık yıl sonu mütabakatı yapılacak ve bunlar para birimlerine göre olacak 
işin kilit noktası her CARI değiştiğinde yeni bir sayfaya başlıyacak
Benim düşüncem bunu DBPivot ile hallederim diye düşündüm fakat 2 gündür işin içinden çıkamıyorum.

Denediğim yöntem Rapora gönderdiğim dataset üzerinden yola çıkarak
Rapora 
1 adet pageheader (Sabit üst bilgi yazısı için)
1 adet GroupHeader (CariID)
1 adet Master(Data için)
1 adet PageFooter(Sayfa sonu bilgisi için)

GroupHeader üzerine Pivot koydum olmadı, master üzerine koydum olmadı, Detail bant yapıp Child oluşturdum yine olmadı

Bu konuda benzer bir şey yapan arkadaşlardan yardımını rica ederim.

İyi Çalışmalar

Carileri Masterdata olarak düşünürsek, detayıda subdetail ile yapabilirsiniz diye düşünüyorum.
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#3
(04-07-2019, Saat: 10:16)adelphiforumz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Selamlar

FastReport üzerinde bir mütabakat mektubu hazırlamaya çalışıyorum
Bir Cari kaydın 3 yıllık yıl sonu mütabakatı yapılacak ve bunlar para birimlerine göre olacak 
işin kilit noktası her CARI değiştiğinde yeni bir sayfaya başlıyacak
Benim düşüncem bunu DBPivot ile hallederim diye düşündüm fakat 2 gündür işin içinden çıkamıyorum.

Denediğim yöntem Rapora gönderdiğim dataset üzerinden yola çıkarak
Rapora 
1 adet pageheader (Sabit üst bilgi yazısı için)
1 adet GroupHeader (CariID)
1 adet Master(Data için)
1 adet PageFooter(Sayfa sonu bilgisi için)

GroupHeader üzerine Pivot koydum olmadı, master üzerine koydum olmadı, Detail bant yapıp Child oluşturdum yine olmadı

Bu konuda benzer bir şey yapan arkadaşlardan yardımını rica ederim.

İyi Çalışmalar

Merhabalar,

Anladığım kadarı ile,

Eğer her firma için sadece son 3 yılın bilgilerini almak ise (son 3 üç yıl hiç değişmiyor ise!)
ve para birimleri de TL,€,$ ise ve yine değişmiyor ise bunun için PIVOT kullanmanıza gerek yok bence.
SQL ile bu işleminizi çözüp normal bir şekilde raporlayabilirsiniz diye düşünüyorum.

Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#4
@narkotik dediğinizi deneyip geri dönüş yapıcam
@hi_selamlar kişi ekrandan girdiği tarih aralığına göre yıl değişebiliyor ayrıca 14 ayrı para biriminde çalışan cariler var

@narkotik Report içinde dinamik oluşmus (Delphiden gönderilmiş) Dataset için
aynı dataseti kullanarak subdetail oluşturulabilirmi yoksa subdetail için 2. datasetmi döndermek gerekir
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#5
Merhaba,
Bence bu işlemi raporunuzda page1 ve page2 kullanarak yapabilirsiniz.
Page1 de ön yazı olur
Page2 de ise crosstab koyarsınız böylece örnekteki benzer formu oluşturursunuz tek farkla ön yazı ile rapor farklı sayfalarda olur.
Cevapla
#6
@iyarar  amaç aynı sayfanın üzerinde 1 başlık orta kısmında data sayfanın sonundada sabit bilgi var
ayrıca 2.sayfaya atmış bile olsam her cariyi nasıl ayrıştırıp sadece o carinin bilgisini pivot yapıda kişiye sunabilicem
buradaki işin kilit kısmı her carinin veririsinin yıllara göre pivot içerisinde ayrıştırılması


Selamlar yapıyı kendimce bir yöntemle aşağıdaki şekilde çözebildim belki daha pratik bir yolu vardır
1 adet GroupHeader (CariID Grup değeri olarak atadım) Sabit üst bilgi yazısını bu kısımda yazdım. Her grup değiştiğinde yeni sayfada başlaması için Yeni sayfada başlat işaretledim
1 adet Master(Data için) içerisinde herhangi bir veri alanı eklenmedi ve visible = false yapıldı
1 adet GroupFooter(Pivot verisini basmak için kullanıldı ve Sayfa sonu bilgisi için kullanıldı)



Programdan rapora aynı dataset ten 2 adet gönderdim
1. master üzerine bağlı 
2. ise GroupFooter'ın OnBeforePrint olayınada filtre yaparak dinamik oluşturulmuş dataset üzerine veri yazarak oluşuyor. Pivot bu dataset'e bağlı


var dsTmp : TDataSet;

procedure OnStartReport(Sender: TfrxComponent);
begin
 dsTmp : = TDataSet(BsFastReport.Params.ParamByName( 'dsPivotMaster' ).Obj);
end;

procedure GroupFooter1OnBeforePrint(Sender: TfrxComponent);
begin
  With TDataSet(BsFastReport.Params.ParamByName( 'dsPivot' ).Obj) do
  begin
      Close;
      Active := True;
      dsTmp.First;
      While Not(dsTmp.Eof) Do
      begin
          if dsTmp.FieldByName('CARI_KAVNO').AsInteger <> <frdb_dsData."CARI_KAVNO"> Then
          begin
              dsTmp.Next;
              Continue;
          end;
          Append;
          FieldByName('CARI_KAVNO').Value := dsTmp.FieldByName('CARI_KAVNO').AsInteger;
          FieldByName('YIL').Value        := dsTmp.FieldByName('YIL').AsDateTime;
          FieldByName('HPLKOD').Value     := dsTmp.FieldByName('HPLKOD').AsString;
          FieldByName('PCINS').Value      := dsTmp.FieldByName('PCINS').AsString;
          FieldByName('BAKIYE').Value     := dsTmp.FieldByName('BAKIYE').AsFloat;
          FieldByName('TLBAKIYE').Value   := dsTmp.FieldByName('TLBAKIYE').AsFloat;
          Post;
          First;
          dsTmp.Next;
      end;
  end;
end;
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Fastreport barcod yazdirma sorunu TheEAK 8 431 30-07-2019, Saat: 17:09
Son Yorum: TheEAK
  ÇÖZÜLDÜ - Veritabanındaki saat alanını düzenleme wiseman 10 244 24-07-2019, Saat: 21:41
Son Yorum: mcuyan
  Çözüldü. Fastreport ta çalışma anında dataset atama cinarbil 2 175 11-07-2019, Saat: 17:55
Son Yorum: cinarbil
  Çözüldü-sql kodu dengesiz çalışıyor sadikacar60 4 321 11-07-2019, Saat: 14:28
Son Yorum: mcuyan
  [ÇÖZÜLDÜ] WebDav ile Bulut Sunucuya Dosya Yükleme theSinan 4 429 08-07-2019, Saat: 15:42
Son Yorum: r3n4m3



Konuyu Okuyanlar: 1 Ziyaretçi