![]() |
Fastreport Scripttext - Wie wird der ausgeführt?
Hallo :hi: ,
ein Fastreport (TfrxReport) soll aufgerufen und dabei ein Script ausgeführt werden. Dafür habe ich die Eigenschaft ScriptLanguage auf PascalScript gesetzt und in ScriptText nichts weiter als
Delphi-Quellcode:
eingegeben.
Begin
Showmessage('Hello World'); end; Wie bekomme ich dieses Script jetzt zum laufen? |
Re: Fastreport Scripttext - Wie wird der ausgeführt?
Du musst einfach den Report mit der Methode ShowReport anzeigen lassen:
Delphi-Quellcode:
Wenn Dein Script sich im Rumpf des Reports befindet wird es automatisch ausgeführt.
frxReport1.ShowReport;
Gruß, Marcel |
Re: Fastreport Scripttext - Wie wird der ausgeführt?
Danke Marcel,
du hast Recht. So einfach ist es. :oops: Nur darf man nicht nach Erzeugen des Scriptes LoadFromFile aufrufen, d.h. wenn ich im OI zwar den ScriptText fest vorgegeben habe, aber erst zur Laufzeit die Datei lade, wird das Script überschrieben. Soweit ist es klar. Aber ohne einen weiteren Thread dafür aufmachen zu müssen: Wie kann ich denn nun den Report per Script ansprechen, z.B. einen Text schreiben oder eine Grafik zeichnen? Ich nehme auch gern einen Ratschlag an, wo ich etwas nachlesen könnte. |
Re: Fastreport Scripttext - Wie wird der ausgeführt?
Kannste mal erklären was das für einen sinn haben soll.
Du kannst doch alles im Designer machen oder im Delphi Code warum der gerade im Report Script |
Re: Fastreport Scripttext - Wie wird der ausgeführt?
Das ist eher mal ein Ausprobieren.
Ich möchte abhängig von der Seitenzahl Markierungen auf den Seiten ausgeben. Und das auf jedem Report, egal welche Reportdatei. Ich dachte, die Script-Komponente wäre da ein guter Ansatz. |
Re: Fastreport Scripttext - Wie wird der ausgeführt?
Also ich habe auch markierungen auf der Seite hab diese aber in den Delphicode gepackt somit kann ich jeden Reort laden ohne das ich die Scriptdaten ändern muss
|
Re: Fastreport Scripttext - Wie wird der ausgeführt?
Mmh, bin ich mit dem Script wohl doch auf dem falschen Weg :gruebel:
Danke für den Hinweis, da werd ich gar nicht weiter viel Zeit verschwenden. Aber wie kann ich denn aus dem Delphi-Code Markierungen auf eine Reportseite bringen, noch dazu abhängig von der Seitenzahl :wall: |
Re: Fastreport Scripttext - Wie wird der ausgeführt?
Also ich hab zum zeichnen ein TfrxPictureView genommen und dann darauf gezeichnet und die Seitenzahl habe ich momentan noch mit einem Zähler gemacht hab leider noch keine andere lösung gefunden.
|
Re: Fastreport Scripttext - Wie wird der ausgeführt?
Zitat:
Zitat:
|
Re: Fastreport Scripttext - Wie wird der ausgeführt?
ist im Designer drin
|
Re: Fastreport Scripttext - Wie wird der ausgeführt?
Sorry, na klar!
Vielen Dank erstmal, werde es weiter versuchen... |
Re: Fastreport Scripttext - Wie wird der ausgeführt?
Zitat:
|
Re: Fastreport Scripttext - Wie wird der ausgeführt?
Zitat:
Selbst nach dem Ereignis OnEndDoc (und das sollte das letzte sein), sowie nach dem Ausführen von PrepareReport ist PagesCount immer noch 1, obwohl 90 Seiten vorbereitet wurden. Zitat:
Über das Ereignis Progress lässt sich die Anzahl der Seiten des gefüllten Reports zählen. Wie aber kann ich denn nun die einzelnen Seiten ansprechen und abhängig von der Seitenzahl auf einem TfrxPictureView zeichnen??? René |
Re: Fastreport Scripttext - Wie wird der ausgeführt?
Zitat:
|
Re: Fastreport Scripttext - Wie wird der ausgeführt?
Zitat:
Zitat:
Wenn ich jetzt aber auf die Page[0] per Create ein Objekt setze, wird es nur auf der Seite 1 angezeigt. Auf allen folgenden Seiten gibt es das Objekt nicht, obwohl es doch die gleiche Page ist. Versuche ich das Objekt auch auf Page[1] zu erzeugen, kommt ein Zugriffsfehler, da es zwar 8 Seiten, aber nur eine definierte Page gibt. :gruebel: Vielleicht sollte ich mal einen neuen Thead aufmachen, is schon ziemlich weit weg vom Thema. |
Re: Fastreport Scripttext - Wie wird der ausgeführt?
Zitat:
Delphi-Quellcode:
// Referenz auf Seite
ReportPage := TfrxReportPage(frxListe.Pages[0]); // Picture-Objekt erzeugen with TfrxPictureView.Create(TfrxPageHeader(ReportPage.FindObject('PageHeader'))) do begin AutoSize := true; Top := 0; left := 200; Picture.LoadFromFile('c:\windows\zapotek.bmp'); end; |
Re: Fastreport Scripttext - Wie wird der ausgeführt?
Danke Union,
mit dieser Variante wird es in das Header-Band der referenzierten Seite reingeschrieben und so funktioniert es auch. Die Objekte sollen aber auf der Seite erzeugt werden, unabhängig davon, ob ein Band existiert und wie groß es ist. Außerdem sollen sie eben nicht auf jeder Seite erzeugt werden. Vielen Dank für die bisherige Hilfe. Und in der Hoffnung, dass die Diskussion trotzdem weitergeht, verweise ich hier auf einen neuen Thread: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz