arkadaşlar fatura dizaynımda alt toplamların yeri sabit oldugu için alt toplamları pagefooter'a yazıyorum 1 sayfalık fat.da herşey güzel ancak 2 sayfalık fatura olunca buraya alt toplam almasında son syafaya sadece toplam yazsın istiyorum. değişkenleri isimlendirdim ama genede yazıyo
procedure Page1OnBeforePrint(Sender: TfrxComponent);
begin
if ((<totalpages#> > 1) and (<page#> = 1)) then
begin
memom1.visible :=false;
memom2.visible :=false;
memom3.visible :=false;
memom4.visible :=false;
end;
end;
selamlar,
fastreportta fatura dizaynı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- DarkEternal
- Üye
- Mesajlar: 158
- Kayıt: 19 Eki 2005 11:00
fastreport fatura dizaynı
olmaz illakide footer da yazdırmalıyım ama sayfa 1...50 arası yazarken 1..49 da alt toplam vermicek sadece 50 de alt toplam olacak sonra 1 sayfalık bi fatura ise onun altında toplam gösterecek acil yazrdım lütfen
İlk başta PageFooter invisible olmalı. Rapora bir de Summary ekleyin. Raporun basinda AltToplamYaz isimli bir değişken tanımlayın ve değerini 0 atayın. Summary içerisinde de AltToplamYaz değişkenini 1 yapın. PageFooter ın onBeforePrint Event'ının içerisinde de if AltToplamYaz=1 then PageFooter1.Visible:=True else PageFooter1.Visible:=False; yazın. Ayrıca yasal olarak sayfanın her sayfanın altına sayfa toplamı ve sonraki sayfanın başına devir toplamı yazdırmanız gerekir. Devir bandını PageHeader'a bir Child band bağlayarak yapabilirsiniz.
Merhaba farklı bir bakış açısından bakarsak ,
Fatura satırlarının tutulduğu tablonun EOF olması PAgeFooter bandının yazdırılması aksi durumdada yazdırılmamasının kontrolüyle istediğiniz yapılabilir.Bu durumda FastReport içinden Delphiteki tablonun EOF olup olmadığını öğrenmek için bir fonksiyon yazmak ve bunu kullnamak işi çözecektir,
Raporda detay veri olarak kulladığınız dataset in bulunduğu forma bir fonksyion tanımlayın
sonra bu fonksiyonu FastReport a tanıtıyoruz,
Formun OnCreate Olayına yazalım ,
Son olarak FastReport içinden ilgili fonksiyon çağrıldığında sonucun FastReport a taşınamsını sağlayacak yordamı yazalım ,
frxREport bileşeninin OnUserFunction olayına ,
Artık herşey hazır, ilgili FastReport sayfasından şöyle bir komut kullanabilirsiniz,
Not: FasTReport ta kullanıcı tanımlı fonksyionların kulanılması olayını forumdaki makalelerden yararlanarak yazdım.
İyi çalışmalar.
Fatura satırlarının tutulduğu tablonun EOF olması PAgeFooter bandının yazdırılması aksi durumdada yazdırılmamasının kontrolüyle istediğiniz yapılabilir.Bu durumda FastReport içinden Delphiteki tablonun EOF olup olmadığını öğrenmek için bir fonksiyon yazmak ve bunu kullnamak işi çözecektir,
Raporda detay veri olarak kulladığınız dataset in bulunduğu forma bir fonksyion tanımlayın
Kod: Tümünü seç
function RaporDetayEof:Byte;
begin
if qRaporDetay.Eof then Result:=1 else Result:=0;
//qRaporDetay sizin detay datasetin adı oluyor.
end;
Formun OnCreate Olayına yazalım ,
Kod: Tümünü seç
frxReport.AddFunction('function RaporDetayEof:Byte');
frxREport bileşeninin OnUserFunction olayına ,
Kod: Tümünü seç
if MethodName='RaporDetayEof' then Result:=RaporDetayEof;
Kod: Tümünü seç
if RaporDetayEof=1 then PageFooter1.Visible:=True else PageFooter1.Visible:=False;
İyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
-
- Üye
- Mesajlar: 386
- Kayıt: 02 Tem 2007 09:43