Fast Raport Şarta Bağlı Detail Yazdırma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
akuyumcu63
Üye
Mesajlar: 386
Kayıt: 02 Tem 2007 09:43

Fast Raport Şarta Bağlı Detail Yazdırma

Mesaj gönderen akuyumcu63 »

merhaba;

CariHareket ve FaturaHareket adında iki tane tablom var,
CariHareket Kayıtlarını Raporda MasterData Bandında, FaturaHareket Kayıtlarını da DetailData Bandında Görüntülüyorum.

yapmaya Calıştığım şey şu;
CariHareket Tablosunda İŞLEMTİPİ ='Satış Faturası' yada İŞLEMTİPİ ='Alış Faturası' ise FaturaHareket Tablosundaki hareket kayıtlarını ilgili kaydın altında listelesin,
raporun devamında da borc, alacak, tahsilat, ödeme gibi işlem tipi kayıtları CariHareket Kayıtları olarak raporun devamında devam etsin, arada tekrar İŞLEMTİPİ='Satış Faturası' olan bir kayıt olursa FaturaHareket kayıtlarını listelesin ve devam etsin,

bu işlem için nasıl bir yol izlemeliyim. Teşekkür ederim.
İsteyen, yapabildiğinden daha fazlasını yapar.
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Fast Raport Şarta Bağlı Detail Yazdırma

Mesaj gönderen csunguray »

Programın içerisinde CariHareket tablosunun OnAfterScroll event'ı içerisinde:

Kod: Tümünü seç

procedure TForm1.CariHareketAfterScroll(DataSet: TDataSet);
begin
  inherited;
  FaturaHareket.Close;
  if (CariHareket.FieldByName('İISLEMTIPI').AsString = 'Satış Faturası') or  (CariHareket.FieldByName('ISLEMTIPI').AsString = 'Alış Faturası') then
  begin
      FaturaHareket.Parameters.ParamByName('FATURA_NO').Value := CariHareket.FieldByName('FATURA_NO').AsInteger;
      FaturaHareket.Open;
  end;
end;
benzeri bir kod yazın.
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/)
akuyumcu63
Üye
Mesajlar: 386
Kayıt: 02 Tem 2007 09:43

Re: Fast Raport Şarta Bağlı Detail Yazdırma

Mesaj gönderen akuyumcu63 »

merhaba;
söylemiş olduğunuz kodu aşağıdaki gibi denedim. istediğim sonucu alamadım

Kod: Tümünü seç

  inherited;
  frmDm.IBQryVWFaturaHareket.Close;
  if (frmDm.IBqryVWCariHar.FieldByName('ISLEMTIPI').AsString = 'Satış Fatura') or  (frmDm.IBqryVWCariHar.FieldByName('ISLEMTIPI').AsString = 'Alış Fatura')  then
  begin
    frmDm.IBQryVWFaturaHareket.SQL.Clear;
    frmDm.IBQryVWFaturaHareket.SQL.Add('select * from VWFATURAHARLISTE where (ID LIKE:MID)'); 
    frmDm.IBQryVWFaturaHareket.SQL.Add('Order By FHID');
    frmDm.IBQryVWFaturaHareket.Params[0].AsString:=Trim(frmDm.IBqryVWCariHarMODULID.AsString);
    frmDm.IBQryVWFaturaHareket.Open;
  end;
  end;
göndermiş olduğunuz kodu yukarıdaki şekilde denemeye çalıştım. elde ettiğim sonuç, CariHareket tablosunun her kaydının altına fatura hareketlerinin hepsini sıralıyor.
benim yapmaya çalıştığım şey ise;
cari hareket tablosunda İŞLEMTİPİ ='Satış Faturası' yada İŞLEMTİPİ ='Alış Faturası' olan bir kayıt olduğunda fatura hareketlerini o cariHareketin altına listelesin devamındaki hareketin işlem tipi fatura ise önce cariHareketini sonrada o hareketin altına fatura harketlerini sıralasın, devamındaki hareketin işlem tipi borç ise borç hareketini yazsın fatura hareketleri çıkmasın,
İsteyen, yapabildiğinden daha fazlasını yapar.
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: Fast Raport Şarta Bağlı Detail Yazdırma

Mesaj gönderen yusuf simsek »

kodu Fast Report Database Nesnesini bağlamış olduğun Query nesnesinin "AFTER SCROOLL" olayına yazdığın zaman SORGUNDA hata yoksa sorunsuz olarak çalışması lazım.
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
akuyumcu63
Üye
Mesajlar: 386
Kayıt: 02 Tem 2007 09:43

Re: Fast Raport Şarta Bağlı Detail Yazdırma

Mesaj gönderen akuyumcu63 »

merhaba;

kodun bende çalışan son hali;

Kod: Tümünü seç

  inherited;
  if (Trim(frmDm.IBqryVWCariHar.FieldByName('ISLEMTIPI').AsString) = 'Satış Fatura') or
     (Trim(frmDm.IBqryVWCariHar.FieldByName('ISLEMTIPI').AsString) = 'Alış Fatura') then
  begin
    frmAnaForm.rpCariAyrintili.Pages[1].FindObject('Header2').Visible:=True;
    frmAnaForm.rpCariAyrintili.Pages[1].FindObject('DetailData1').Visible:=True;
    frmAnaForm.rpCariAyrintili.Pages[1].FindObject('Footer1').Visible:=True;
    frmDm.IBQryVWFaturaHareket.Close;
    frmDm.IBQryVWFaturaHareket.FetchAll;
    frmDm.IBQryVWFaturaHareket.UnPrepare;
    frmDm.IBQryVWFaturaHareket.SQL.Clear;
    frmDm.IBQryVWFaturaHareket.SQL.Add('select * from VWFATURAHARLISTE where (ID LIKE:MID) Order By FHID'); //and (FATID LIKE:MADI
    frmDm.IBQryVWFaturaHareket.Params[0].AsString:=Trim(frmDm.IBqryVWCariHarMODULID.AsString);
    frmDm.IBQryVWFaturaHareket.Prepare;
    frmDm.IBQryVWFaturaHareket.Open;
  end else
  begin
    frmAnaForm.rpCariAyrintili.Pages[1].FindObject('Header2').Visible:=False;
    frmAnaForm.rpCariAyrintili.Pages[1].FindObject('DetailData1').Visible:=False;
    frmAnaForm.rpCariAyrintili.Pages[1].FindObject('Footer1').Visible:=False;
    frmDm.IBQryVWFaturaHareket.Close;
  end;
Çok Teşekkür ederim.
İsteyen, yapabildiğinden daha fazlasını yapar.
tunure
Üye
Mesajlar: 1
Kayıt: 13 Eki 2014 05:59

Re: Fast Raport Şarta Bağlı Detail Yazdırma

Mesaj gönderen tunure »

FAst reportda rapor alırken sorun yaşıyorum, yatay kağıt setupları verdiğim halde dikey kağıt gibi düşünüp, verilerimin tamamını almıyor.
Fast reportda page setting de
oriantation = Landscape seçiyorum.
Size : A4 210*294 cm seçiyorum..
Width : 29,7
High : 21

oluyor..
Ama çıktı alırken genişliği 21 oalrak yazıyor..Genişliği yatay kağıt gibi değil, düşey kağıt gibi algılıyor.
YAzıcı propertiesinden de YAtay kağıt ayarı yapıyorum..ama genede olmuyor..
Cevapla