AGB  ·  Datenschutz  ·  Impressum  







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

Fastreport Variable auslesen

Ein Thema von NoName1 · begonnen am 6. Jun 2019 · letzter Beitrag vom 8. Jun 2019
Antwort Antwort
NoName1

Registriert seit: 8. Mär 2018
197 Beiträge
 
Delphi 12 Athens
 
#1

Fastreport Variable auslesen

  Alt 6. Jun 2019, 09:52
Guten Tag,
nun benöntige ich nochmals Eure Hilfe.
Ich möchte in Fastreport, nach dem "Showreport Ereignis" den Wert der Variablen "Page" auslesen.
In Fastreport habe ich im Page-Footerband folgendes definiert:
Seite: [<Page> + <startseite> -1]
Für das Auslesen Verwende ich folgendes:
pSeiten := frxReport1.Variables['<Page>']; Es wird der in der Anlage beschriebene Fehler ausgegeben.
Wenn ich "pSeiten" in eine Intergervariable ändere, wird die gleiche Fehlermeldung ausgegeben,
nur mit dem Inhalt, das nicht in den "Typ (Integer)" konvertiert werden kann.

Wie greift man den Inhalt von Variablen in Fastreport ab?
Vielen Dank für Eure Hilfen im Voraus.
Miniaturansicht angehängter Grafiken
fehler-fastrep-1.png  
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Fastreport Variable auslesen

  Alt 6. Jun 2019, 09:59
Hallo,
laut dem hier ist OnShowReport zu früh

https://www.fast-report.com/en/forum...howtopic=11790

oder dein "<Page>" ist falsch und muss heißen "Page"
siehe auch
https://www.fast-report.com/document...ite_report.htm
Heiko

Geändert von hoika ( 6. Jun 2019 um 10:01 Uhr)
  Mit Zitat antworten Zitat
NoName1

Registriert seit: 8. Mär 2018
197 Beiträge
 
Delphi 12 Athens
 
#3

AW: Fastreport Variable auslesen

  Alt 6. Jun 2019, 12:19
danke für die Hinweise,
aber auch diese brachten keine Lösung.
Wo sonst wenn nicht nach dem "OnShowReport"?, frage ich mich.
Irgend wie muss man die Variable doch auslesen können.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Fastreport Variable auslesen

  Alt 6. Jun 2019, 16:27
Hallo,
hast du die <> entfernt?

Was für ein Typ ist denn frxReport.Variables?
Sieht doch fast aus wie eine StringList oder ähnliches,
dann müsste man doch mal alle Variablen auslesen können.
Dann weißt du dann auch, wie deine gewünschte Variable heisst.

Also F5 drücken und mit F7 mal in den Quell-Code von FastReport schauen.
Heiko
  Mit Zitat antworten Zitat
NoName1

Registriert seit: 8. Mär 2018
197 Beiträge
 
Delphi 12 Athens
 
#5

AW: Fastreport Variable auslesen

  Alt 7. Jun 2019, 11:10
hoika,
habe ich alles versucht.
Ich habe nun mit Fastreport Kontakt aufgenommen. Mal abwarten was ich von FR erfahren werde.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Fastreport Variable auslesen

  Alt 7. Jun 2019, 13:28
Hallo,
nun gut aber

Zitat:
habe ich alles versucht.
Auch mal in den Quellen gesucht, welcher Daten-Typ Variables ist?
Heiko
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
536 Beiträge
 
Delphi 12 Athens
 
#7

AW: Fastreport Variable auslesen

  Alt 7. Jun 2019, 14:56
Die Variablen sind immer vom Typ Variant. Die werden in Fastreport bei der Reporterstellung entsprechend umgewandelt, etwa in String, Integer usw.

Ist teilweise wenig fehlertolerant, wenn z.B. auf Nullwerte zugegriffen wird wirft er Fehlermeldungen und bricht ab.

Würde mal OnEndDoc versuchen um an den Wert zu kommen
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
Quitzlinga

Registriert seit: 4. Aug 2012
Ort: Hamburg
5 Beiträge
 
Delphi XE Architect
 
#8

AW: Fastreport Variable auslesen

  Alt 7. Jun 2019, 16:44
Hi,

das wird alles so nicht funktionieren. Bevor Du eine Variable auslesen kannst, musst Du sie erst einma im Report selbst definieren. Ein einfaches <meinevariable> in einem Label oder anderem rein zu schreiben langt da nicht.

Folgendes Vorgehen hat für mich funktioniert:

1. Aufruf des Reports im Editor-Modus ( mReport.DesignReport( true ) )
2. Anlage eines Variablenverzeichnisses über das Menü Report->Variablen ( zB. "MyVar" )
3. Nun Hinzufügen einer Variablen in MyVar
4. Einfügen der Variable in ein Memo, Label etc per Doppelklick und "[MeineVar]".
5. Speichern des Reports. Nun kann die Variable im Report angesprochen werden.

Nun kannst Du die Variable in Delphi beschreiben oder auslesen.

    mReport.Variables['MeineVar'] := 15; Alternativ kannst Du die Variable auch so beschreiben

mReport.Variables.AddVariable( 'MyVar', 'MeineVar', 6 ); Das Geheimnis liegt in der vorherigen Deklaration im Report sonst stehen die auch nicht in der Stringliste drin.

MfG

Quitzlinga

[Edit Nachtrag]
der Aufruf des Fastreport-Editors geht nur in der Pro-Version

Geändert von Quitzlinga ( 7. Jun 2019 um 17:07 Uhr)
  Mit Zitat antworten Zitat
NoName1

Registriert seit: 8. Mär 2018
197 Beiträge
 
Delphi 12 Athens
 
#9

AW: Fastreport Variable auslesen

  Alt 8. Jun 2019, 08:31
so, Paul Gursky von FastReport hat geantwortet:
Zitat:
Page is not user defined variable, this is system variable.
Use
frxReport1.EngineOptions.DestroyForms := False;
frxReport1.ShowReport();
ShowMessage(VarToStr(frxReport1.Calc('<Page>')));
Ich habe im Code dann folgendes genommen:
pSeite := StrToInt(frxReport1.Calc('<Page>'));
Es wird die Summe der Seiten korrekt ausgelesen.
Damit ist für mich das Thema beendet.
Vielen Dank an allen für Eure Mühen
  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 08:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz