AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FastReport - Create von Objekten auf Seiten

Offene Frage von "smudo"
Ein Thema von smudo · begonnen am 28. Sep 2005 · letzter Beitrag vom 4. Okt 2005
Antwort Antwort
Seite 1 von 2  1 2      
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#1

FastReport - Create von Objekten auf Seiten

  Alt 28. Sep 2005, 11:35
Hallo ,

im letzten Thread zum Thema FastReport hier entfernte sich alles ziemlich weit vom Thema.
Deshalb gehts jetzt hier weiter:

Mit einem FastReport (bestehend aus 1 oder 2 definierten Seiten) werden beliebig viele Seiten ausgedruckt.
Wie kann ich die Gesamtanzahl der auszudruckenden Seiten ermitteln und wie kann ich in Abhängigkeit von der Seitenzahl
Objekte auf den einzelnen Seiten erstellen? Es handelt sich um TfrxLineView-Objekte.

Zum Verständnis ein einfaches Beispiel:
Delphi-Quellcode:
var Page: TfrxReportPage;
    Line: TfrxLineView;
begin
[..]
frxReport1.LoadFromFile(report);
    Page:=TfrxReportPage(frxReport1.Pages[0]);
    Line:=TfrxLineView.Create(Page);
    Line.CreateUniqueName;
    Line.SetBounds(0,50,20,1);
[..]
end;
Hierbei wird die Linie aber nur auf der ersten Seite, nicht aber auf den Folgeseiten dargestellt.

Was muss ich ändern?

René
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: FastReport - Create von Objekten auf Seiten

  Alt 28. Sep 2005, 11:51
Hi,

hier ein Beispiel für das Linienzeichen. Beim Erstellen des Reports erscheinen die Linien auf jeder erzeugten Seite:
Delphi-Quellcode:
ColumnHeader := TfrxColumnHeader(ReportPage.FindObject('ColumnHeader'));


with ColumnHeader do
begin
   Clear;
   Font.Size := iFontSize;
   Height := Font.Size*2+2;
end;

with TFrxLineView.Create(ColumnHeader) do
begin
   top := 0;
   Align := baWidth;
end;

with TFrxLineView.Create(ColumnHeader) do
begin
   top := ColumnHeader.Height;
   Align := baWidth;
end;
Die Anzahl der Seiten ausserhalb des Reports ermittelst Du so:
Delphi-Quellcode:
frxListe.EngineOptions.Doublepass := true;
frxListe.PrepareReport();
ShowMessage(Format('Anzahl Seiten: %d', [frxListe.Engine.PreviewPages.Count]));
frxListe.ShowReport();
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#3

Re: FastReport - Create von Objekten auf Seiten

  Alt 28. Sep 2005, 12:05
Nicht schon wieder der gleiche Fehler!
ich raufe mir die Haare und streue mir Asche auf das Haupt!

Ich kann im OI viel einstellen, wenn ich danach erst LoadFromFile aufrufe.
Und natürlich hatte ich DoublePass im OI eingestellt, aber nicht
frxReport1.EngineOptions.Doublepass := true; aufgerufen.

Sorry dafür.
Wegen dem Zeichnen der Linien melde ich mich nochmal, wenn ich´s ausprobiert habe.

@Union: Was heißt eigentlich deine Signatur?

René
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: FastReport - Create von Objekten auf Seiten

  Alt 28. Sep 2005, 12:20
Ich habe es getestet, wenn man ein Lineview direkt auf der Page erzeugt, dann wird es nur auf der ersten Seite gedruckt.
Allerdings kann man ein Hintergrundbild setzen, das auf jeder Seite gedruckt wird:
ReportPage.BackPicture.LoadFromFile('c:\windows\kaffeetasse.bmp'); Wo das Geld am nächsten, da (ist auch) das Recht.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#5

Re: FastReport - Create von Objekten auf Seiten

  Alt 28. Sep 2005, 12:32
Folgendermaßen kann ich das Objekt auf jeder beliebigen Folgeseite generieren:
Delphi-Quellcode:
for z:=0 to Sender.Engine.TotalPages-1 do
begin
  Page:=TfrxReportPage(Sender.Engine.PreviewPages.Page[z]);
  Line:=TfrxLineView.Create(Page);
  Line.CreateUniqueName;
  Line.SetBounds(0,50,20,1);
end;
In dieser Schleife kann ich für jede Seite abfragen, ob beispielsweise der Seitenheader existiert und kann
dementsprechend meine Linien einfügen.

Vielen Dank

die Delphipraxis hat mir mal wieder sehr geholfen!

Zu Unions Signatur: traurig, aber wahr!
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#6

Re: FastReport - Create von Objekten auf Seiten

  Alt 30. Sep 2005, 15:11
Himmelhoch jauchzend zu Tode betrübt...
--> Die Probleme gehen weiter

Ich habe jetzt also meine Markierungen mittels TfrxLineView.Create auf die Seiten gebracht.
Bis 50 Seiten funktioniert das auch gut. Habe ich aber 51 Seiten im Report, so wird auf keiner! Seite eine Linie angezeigt.
Und noch schlimmer: Drucke ich im ersten Fall die Seiten aus, wird nur auf der 1. gedruckten Seite (egal welche) die Markierung gedruckt, alle folgenden enthalten keine Linien.

Ich komm nicht weiter, bitte helft mir!
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: FastReport - Create von Objekten auf Seiten

  Alt 30. Sep 2005, 15:25
Zitat von smudo:
Himmelhoch jauchzend zu Tode betrübt...
--> Die Probleme gehen weiter

Ich habe jetzt also meine Markierungen mittels TfrxLineView.Create auf die Seiten gebracht.
Bis 50 Seiten funktioniert das auch gut. Habe ich aber 51 Seiten im Report, so wird auf keiner! Seite eine Linie angezeigt.
Und noch schlimmer: Drucke ich im ersten Fall die Seiten aus, wird nur auf der 1. gedruckten Seite (egal welche) die Markierung gedruckt, alle folgenden enthalten keine Linien.

Ich komm nicht weiter, bitte helft mir!
Muss das wirklich auf dem Seitenobjekt sein? FR scheint damit Probleme zu haben.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#8

Re: FastReport - Create von Objekten auf Seiten

  Alt 30. Sep 2005, 15:37
Welche Alternative gäbe es denn, damit auf dem fertig preparierten Report
auf jeder Seite Markierungen hinzugefügt werden können?
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: FastReport - Create von Objekten auf Seiten

  Alt 30. Sep 2005, 15:38
Zitat von smudo:
Welche Alternative gäbe es denn, damit auf dem fertig preparierten Report
auf jeder Seite Markierungen hinzugefügt werden können?
Z.b. in einem Header oder Footerband.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#10

Re: FastReport - Create von Objekten auf Seiten

  Alt 30. Sep 2005, 16:33
Habe es auf einem TfrxOverlay-Band versucht und erhalte das gleiche Ergebnis.
Vielleicht könnte ich die Linien auf dem Band vorgeben und nachher die Visible-Eigenschaft auf jeder Seite anpassen?

Edit: scheint auch so nicht zu funktionieren. Ich bin am verzweifeln!!!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz