Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   RAVE Scripting (https://www.delphipraxis.net/67492-rave-scripting.html)

MrSpock 15. Apr 2006 15:08


RAVE Scripting
 
Hallo,

ich habe in einem Ravereport eine Region, deren "Top" ich gerne in einem Script verändern möchte.

Mir wird im Designer Top=104,5 angezeigt.

Jetzt möchte ich in einem Script Top=84,5 setzen, wenn die Region nicht auf Seite 1 gedruckt wird.

Ich habe aber schon das Problem, Top ohne Bedingung zu setzen. Das Script akzeptiert werder ein "," noch einen ".". Ich kann nur eine Ganzzahl setzen. Der Wert 4 entspricht dabei in etwa der Position, die mir im Designer als 104,5 angezeigt wird. Deshalb habe ich 2 Fragen:

1. Wie kann ich Top auf 84,5 setzen?
2. Wie prüfe ich, ob ich auf Seite 1 bin? (Report.CurrentPage funktioniert nicht.)

Keldorn 15. Apr 2006 18:15

Re: RAVE Scripting
 
Hallo

ich hatte ein ähnliches Problem und bin auch dran verzweifelt:
http://www.delphipraxis.net/internal...highlight=rave

bei mir gings mit punkt, wenn ich die Windowseinstellung geändert habe.

Vielleicht hilfts es dir ja, wenn du den Top-wert nicht fest setzt, sondern wie ich dich an einer anderen Kompo orientierst.

Mfg Frank

MrSpock 15. Apr 2006 20:16

Re: RAVE Scripting
 
Hallo Keldorn,

danke für den Tip. Ich habe es jetzt so geschafft:

Code:
Region1.Top := StrToFloat('3,1');
Das scheint zu funktionieren. Aber ich kann immer noch nicht auf eine Report Var zugreifen. :gruebel:

[edit]So ich hab es jetzt so gemacht: [/edit]
Code:
if RaveProject.GetParam('FirstTime')='' then
     Region1.Top := StrToFloat('3,8');
     RaveProject.SetParam('FirstTime', '1');
   else
     Region1.Top := StrToFloat('2,8');
   end;
Dennoch würde mich interessieren, ob man auf Report Var zugreifen kann.

MrSpock 28. Apr 2006 10:52

Re: RAVE Scripting
 
Hallo,

leider habe ich noch keine Möglichkeit gefunden, in Scripten auf Report Variablen zuzugreifen.

Hat da jemand eine Idee?

Merlin17 vielleicht? :stupid:

merlin17 30. Apr 2006 16:30

Re: RAVE Scripting
 
Hallo,

Lesen:
Value := RaveProject.GetParam('MeinParameter');
Setzen:
RaveProject.SetParam('MeinParameter','StringWert') ;

Hinweis:Parameter sind immer String's, aber im RaveScripting gibt
es ja Umwandlungen;




:-) thomas, TeamNevrona

MrSpock 2. Mai 2006 11:37

Re: RAVE Scripting
 
Hallo Thomas,

danke für die Antwort.

Ich bin mir eigentlich ziemlich sicher, dass ich:

Delphi-Quellcode:
Value := RaveProject.GetParam('CurrentPage');
schon versucht hätte und es nicht funktioniert hat. Ich werde es aber noch einmal versuchen.
Sind Report Variablen also im Scripting das gleiche wie normale Parameter?

MrSpock 4. Mai 2006 21:21

Re: RAVE Scripting
 
Hallo Thomas,

habe jetzt in das OnBeforPrint Event eines RaveBandes folgenden Code geschrieben:

Code:
ShowMessage(RaveProject.GetParam('CurrentPage'));
Leider wird mir nur ein leeres Fenster angezeigt. CurrentPage ist ja die Reportvariable für die aktuelle Seitenzahl, aber so funktioniert es leider nicht.

merlin17 7. Mai 2006 10:36

Re: RAVE Scripting
 
Hallo,

ich schaue es mir die Tage einmal genauer an bzw. versuche eine miniApp zu basteln!
wird aber erst nach Mülheim/Ruhr....

:-) thomas, TeamNevrona

MrSpock 30. Mai 2006 12:33

Re: RAVE Scripting
 
Hallo Thomas,

hast du irgendwelche Neuigkeiten für mich?

merlin17 24. Jun 2006 20:35

Re: RAVE Scripting
 
ja, ich habe was neues:

die Lösung lautet wie folgt:

Report.Print(IntToStr(Report.CurrentPage));

ich muss aber gestehen, dass ich zwar lange gesucht habe, aber keine Lösung
gefunden habe; hier hat mir Eldon von Nevrona den entscheidenden Tipp gegeben!


:-) thomas, TeamNevrona

MrSpock 24. Jun 2006 21:46

Re: RAVE Scripting
 
Hallo Thomas,

danke für deine Mühe. Ich hab das mal versucht. "Report" ist aber im Script unbekannt. Ich habe es auch einmal mit Self.Print() versucht, funktioniert aber auch nicht. Was macht denn die Funktion Print? Ich wollte ja einfach nur den Wert von CurrentPage im Script lesen. :(

StefanG 3. Jul 2006 13:53

Re: RAVE Scripting
 
Report.Print funktioniert nur bei Komponenten, die das Objekt "Report" beim Event auch übergeben, so z.B. bei der Section.
Hier mal eine Antwort die ich per Mail bekommen habe :

Zitat:

Report parameters are a bit tricky. The TotalPages for example when used
doesn't have an actual value but simply places a place holder in the file.
Then when the report is completed this place holder is updated with the
actual value. This value isn't known, obviously, until the report has
completed.

If you need to print data based on the current page then this can be done
through a TRaveSection component as follows.

function Section1_OnPrint(Self: TRaveSection; Report: TBaseReport);
begin
if Report.CurrentPage = 1 then
Report.Print('Title Page');
else
Report.Print('Report Page');
end;
end OnPrint;

Eldon Lewis
Nevrona Designs


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:28 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 by Thomas Breitkreuz