AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fastreport Variable auslesen

Ein Thema von ibp · begonnen am 14. Sep 2011 · letzter Beitrag vom 14. Sep 2011
Antwort Antwort
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Fastreport Variable auslesen

  Alt 14. Sep 2011, 19:16
Mit QuotedStr und Literal funktioniert beides:
Ich glaube, er wollte etwas anderes wissen.
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:
procedure Page1OnBeforePrint(Sender: TfrxComponent);
begin
  Report.Variables.Variables('test') := '''von innen''';
  Report.Variables['XXX'] := '''YYY''';
end;

begin
end.
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.

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.
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#2

AW: Fastreport Variable auslesen

  Alt 14. Sep 2011, 19:46
ABER, diese Werte sind NICHT von außen (Delphi) verfügbar. Es erscheint nur die definierte Variable test mit dem vorher übergebenen Wert.
Mist und genau das brauche ich....

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
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Fastreport Variable auslesen

  Alt 14. Sep 2011, 20:08
Delphi-Quellcode:
...
  Report.Variables.Variables('test') := '''von innen''';
  Report.Variables['XXX'] := '''YYY''';
...
Anmerkung:

Es funktioniert auch der folgende Zugriff auf Variablen in FR:
Delphi-Quellcode:
...
  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.
...
Es gilt aber das gleiche wie bei den oben genannten Varianten.
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#4

AW: Fastreport Variable auslesen

  Alt 14. Sep 2011, 20:21
ok hmmm

Gibt es noch eine andere Möglichkeit Informationen von innen nach außen zu transportieren?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Fastreport Variable auslesen

  Alt 14. Sep 2011, 20:29
Also so geht es
  Report.Variables['test'] := '''''''Hallo'''''''; Folgender Wert müsste im Variablen-Editor eingegeben werden
Code:
'''Hallo'''
Und nun muss man alle Quotes verdoppeln und dann nochmal in Quotes einschließen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#6

AW: Fastreport Variable auslesen

  Alt 14. Sep 2011, 20:45
Also so geht es
  Report.Variables['test'] := '''''''Hallo'''''''; Folgender Wert müsste im Variablen-Editor eingegeben werden
Code:
'''Hallo'''
Und nun muss man alle Quotes verdoppeln und dann nochmal in Quotes einschließen
stimmt ABER leider ist es so wie es MaBuSe schon geschrieben hatte, dass man von außen den Wert innen nicht abrufen kann.

Daher suche ich eine andere Lösung!
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Fastreport Variable auslesen

  Alt 14. Sep 2011, 20:48
ok hmmm
Gibt es noch eine andere Möglichkeit Informationen von innen nach außen zu transportieren?
Doch es geht.
Ich habe eine Möglichkeit gefunden.

gib mir ein paar Minuten, dann bastele ich Dir ein Beispiel...
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Fastreport Variable auslesen

  Alt 14. Sep 2011, 21:01
gib mir ein paar Minuten, dann bastele ich Dir ein Beispiel...
Folgendes Minimalbeispiel:
  1. Erzeuge eine neue Anwendung.
  2. Lege ein TfrxReport darauf.
  3. [RechtsKlick] -> "Edit Report..."
  4. Es öffnet sich der Report Designer
  5. Auf den Tab mit "Code" klicken
  6. FR wechselt zum Code Editor
  7. Folgenden Code eingeben:
    Delphi-Quellcode:
    var
     s: string;

    begin
      s := 'Test';
    end.
  8. Designer schließen
  9. Einen TButton auf das Delphi Form legen
  10. und folgenden Code auf das OnClick Ereignis legen:
    Delphi-Quellcode:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      frxReport1.ShowReport;
      Caption := frxReport1.Script.Variables['s'];
    end;
  11. Programm Compilieren und Starten
  12. Button drücken
  13. -> Report Vorschau öffnet sich -> schließen
  14. -> Caption bekommt den Wert Test

Das geht in beide Richtungen !!!
ABER: Beim Zuweisen mit frxReport1.Script.Variables['s'] := 'Hurra'; wird die Variable s definiert. Das bedeutet sie darf nicht mit var s: string definiert sein.

Aber das ist durchaus verschmerzbar, oder?

Ich hoffe das löst Dein Problem.
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)

Geändert von MaBuSE (14. Sep 2011 um 21:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#9

AW: Fastreport Variable auslesen

  Alt 14. Sep 2011, 21:43
@MaBuSe

Danke in die nähe von F, klappt sehr gut!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:00 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