So ich habe mal etwas ausprobiert und habe eine Möglichkeit gefunden die Texte entsprechend dynamisch anzupassen.
Ich habe im OnBeforePrint Event eines DataText Feldes entsprechenden Code eingefügt.
Da ich jetzt den Code in weiteren Feldern hinzufügen müßte, habe ich mich gefragt ob ich nicht eine Funktion schreiben kann
und ich in dem Event nur die Funktion aufrufe!? Aber ich habe nirgendwo eine Möglichkeit gefunden eigene Funktionen
zuschreiben, vielleicht geht das auch mit der Version nicht die meinem Delphi 2007 Prof beiliegt.
Dann wollte ich evtl. noch den Textvergleich ändern und nicht schreiben Self.Text >= DataText164.Text sondern das
in ein Gleitkommawert umwandeln, jedoch bekomme ich die Meldung das '7.150' kein gültiger Gleitkommawert ist, hat
jemand eine Idee wie ich das abhängig von der Betriebssystemeinstellung realisieren kann.
Also sowas wie MinWert := StrToFloat(StringReplace(DataText164.Text, '.', <Dezimaltrennzeichen>));
in Delphi wäre das ja kein Akt nur wie geht sowas im Rave. Da ich in dem Event auch irgendwie keine
Eigenen Variablen deklarieren kann ist das eh noch komplizierter. Ich kann zwar im Kopf Variablen deklarieren.
Delphi-Quellcode:
{ Event for DataText193.OnBeforePrint }
function DataText193_OnBeforePrint(Self: TRaveDataText);
var
Min : Float;
Value : Float;
Max : Float;
begin
Dann meckert der Compilier vom Rave jedoch das er im Hauptteil des Events den Bezeichner "Min" nicht kennt !?
Delphi-Quellcode:
{ Event for DataText193.OnBeforePrint }
function DataText193_OnBeforePrint(Self: TRaveDataText);
begin
if (RaveProject.GetParam('BWPrint') = '0') then
//Min und Max Sollwert vorhanden
if (DataText164.Text <> '') and (DataText208.Text <> '') then
if (Self.Text >= DataText164.Text) and (Self.Text <= DataText208.Text) then
Self.Color := clGreen;
else
Self.Color := clRed;
end;
end;
//Nur Min Sollwert vorhanden
if (DataText164.Text <> '') and (DataText208.Text = '') then
if (Self.Text >= DataText164.Text) then
Self.Color := clGreen;
else
Self.Color := clRed;
end;
end;
//Nur Max Sollwert vorhanden
if (DataText164.Text = '') and (DataText208.Text <> '') then
if (Self.Text <= DataText208.Text) then
Self.Color := clGreen;
else
Self.Color := clRed;
end;
end;
end;
end OnBeforePrint;