![]() |
Fastreport Variable auslesen
Hi,
wie man eine Variable vom Programm nach FR übergibt oder ausliest ist kein Problem. Nun will ich aber die Variable im Report ändern und das klappt irgendwie nicht.
Code:
Speichert den Text "some text" zwar in MyVar aber ohne '. Anscheinend übersetzt die Skriptengine '''' nicht richtig!
report.variables['MyVar']:=''''+'some text'+'''';
Hat jemand eine andere Idee wie man einen String per FR-Skript in eine Variable speichert? LG R. |
AW: Fastreport Variable auslesen
Funktioniert da QuotedStr ?
|
AW: Fastreport Variable auslesen
Mit QuotedStr und Literal funktioniert beides:
Delphi-Quellcode:
frxReport1.Variables['MyVar'] := QuotedStr('Von Außen');
frxReport1.Variables['MyVar'] := ''''+'Von Außen'+''''; |
AW: Fastreport Variable auslesen
innerhalb der FR Skripte gibt es leider kein QuotedString.
Nochmal ich möchte innerhalb des FR-Skriptes die Variable verändern nicht von dem aufrufenden Programm aus! |
AW: Fastreport Variable auslesen
Zitat:
Er will warscheinlich wissen, wie es im Report geht. Von außen können Variablen mit Werten belegt werden. Das ist kein Problem. Von innen sieht es etwas anders aus.
Delphi-Quellcode:
Das funktioniert beides, Variable Test ist im Report definiert und wird gesetzt. Variable XXX ist im Report nicht definiert, kann aber trotzdem gesetzt und (z.B. im Memo) ausgelesen werden.
procedure Page1OnBeforePrint(Sender: TfrxComponent);
begin Report.Variables.Variables('test') := '''von innen'''; Report.Variables['XXX'] := '''YYY'''; end; begin end. Im Report kann die Variable ausgegeben werden. (z.B. mit folgendem Text in einem TfrxMemoView: [XXX] bzw. [test]) ABER, diese Werte sind NICHT von außen (Delphi) verfügbar. Es erscheint nur die definierte Variable test mit dem vorher übergebenen Wert. Wir verwenden "FastReport 4 Enterprise Edition". Ich hoffe die Info hilft Dir. |
AW: Fastreport Variable auslesen
Aber auch in FScript geht es (nur nicht mit QutedStr):
Delphi-Quellcode:
Report.variables['myVar'] := ''''+'Von drinnen'+'''';
|
AW: Fastreport Variable auslesen
Zitat:
Jemand eine Idee wie ich Infos von innen nach außen transportieren kann? Das Problem scheint die Zuweisung zu sein. Wenn man "innen" die Variable definiert und dann in dem "Definitions-Fenster" den Ausdruck der Variable festlegt, dann kann man sie auch von außen auslesen. Was mir dabei auffällt ist, dass die vordefinierte Variabel beim ausgeben innen mit showmessage(<MyVar>) dann der Inhalt inklusiv Hochkommas ausgegeben wird, wenn ich den Wert innen im Skript zuweise wird er ohne Hochkommas ausgegeben! Hmm |
AW: Fastreport Variable auslesen
Also im FastReport werden die Werte der Variablen als Ausdrücke behandelt.
Somit ergibt der zugewiesene Variablenwert
Code:
als Ergebnis
'Mein' + ' ' + 'Test'
Code:
Es wird also eine String-Verknüpfung durchgeführt.
Mein Test
Will man also einen QuotedStr
Code:
als Ausgabe haben, dann wie folgt zuweisen:
'Mein Test'
Delphi-Quellcode:
alternativ sollte auch funktionieren
Report.variables['myVar'] := '''''Mein Test''''';
Delphi-Quellcode:
Report.variables['myVar'] := '"''Mein Test''"';
|
AW: Fastreport Variable auslesen
Zitat:
Code:
...Fehler im Ausdruck ''''Mein Test'''': Expression expected
|
AW: Fastreport Variable auslesen
Zitat:
Es funktioniert auch der folgende Zugriff auf Variablen in FR:
Delphi-Quellcode:
Es gilt aber das gleiche wie bei den oben genannten Varianten.
...
Report.Variables['XXX'] := '''Das ist ein Test'''; ShowMessage( <XXX> ); // gibt Inhalt von XXX aus; ShowMessage( Get(XXX) ); // gibt Inhalt von XXX aus; Set('XXX', '''Test'''); // XXX wird 'Test' zugewiesen. ... |
AW: Fastreport Variable auslesen
ok hmmm
Gibt es noch eine andere Möglichkeit Informationen von innen nach außen zu transportieren? |
AW: Fastreport Variable auslesen
Also so geht es :)
Delphi-Quellcode:
Folgender Wert müsste im Variablen-Editor eingegeben werden
Report.Variables['test'] := '''''''Hallo''''''';
Code:
Und nun muss man alle Quotes verdoppeln und dann nochmal in Quotes einschließen
'''Hallo'''
|
AW: Fastreport Variable auslesen
Zitat:
Daher suche ich eine andere Lösung! |
AW: Fastreport Variable auslesen
Zitat:
Ich habe eine Möglichkeit gefunden. gib mir ein paar Minuten, dann bastele ich Dir ein Beispiel... |
AW: Fastreport Variable auslesen
Zitat:
Das geht in beide Richtungen !!! ABER: Beim Zuweisen mit
Delphi-Quellcode:
wird die Variable s definiert. Das bedeutet sie darf nicht mit
frxReport1.Script.Variables['s'] := 'Hurra';
Delphi-Quellcode:
definiert sein.
var s: string
Aber das ist durchaus verschmerzbar, oder? :-D Ich hoffe das löst Dein Problem. |
AW: Fastreport Variable auslesen
@MaBuSe
Danke in die nähe von F, klappt sehr gut! :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:16 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