Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#10

AW: Fastreport - Variable übergeben

  Alt 28. Jul 2016, 14:54
Warum?

Man könnte natürlich erstmal in den Quellcode gucken und sieht das Warum.
Delphi-Quellcode:
procedure TfsScript.AddVariable(const Name, Typ: String; const Value: Variant);
var
  v: TfsVariable;
begin
  if Find(Name) <> nil then Exit; // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

  v := TfsVariable.Create(Name, StrToVarType(Typ, Self), Typ);
  v.Value := Value;
  v.OnGetVarValue := FOnGetVarValue;
  Add(v.Name, v);
end;
Entweder du suchst eine Set-Funktion (Ich hab Keine in TfsScript gesehn)
oder du machst vorher ein "Clear".

Wir machen es so, wobei wir Clear nur aufrufen, da auch innerhalb der Scripte weitere Variablen angelegt werden,
die Zuweisung an Variables überschreibt auch so Werte, wenn die Variable vorher schonmal zugewiesen wurde.
Delphi-Quellcode:
FR.Variables.Clear;//alles alte Zeug löschen
FR.Variables['USERNAME'] := FUserName;
...
Aber eigentlich machen wir das so FR.Variables['USERNAME'] := '''' + FUserName + ''''; , wobei ich grade nicht mehr weiß, warum die "Strings" unbedingt als "String" gequotet werden mussten.
(bin bei uns nicht für die Reports zuständig, aber irgendeinen "wichtigen" Grund hatte es)
$2B or not $2B

Geändert von himitsu (28. Jul 2016 um 15:00 Uhr)
  Mit Zitat antworten Zitat