Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   FastReport: Auf Objekt im Quelltext zugeifen (https://www.delphipraxis.net/164042-fastreport-auf-objekt-im-quelltext-zugeifen.html)

scrat1979 26. Okt 2011 20:42


FastReport: Auf Objekt im Quelltext zugeifen
 
Ich stehe gerade vor einem - wahrscheinlich kleinem - Problem mit FastReport. Auf dem Report habe ich in einem Band (Report-Head) ein Textfeld (Memo, momentan noch namens Memo1) platziert. Dieses soll die spätere Überschrift einer Tabelle werden. Die Antwort zu meiner Frage konnte ich leider sowohl mittels SuFu als auch mittels "googlen" nicht finden. Wie greife ich auf ein Objekt auf dem Report im Quelltext zu, um die Überschrift dynamisch im Quelltext zu ändern?

EDIT: Mittlerweile bin ich auf folgende Lösung gekommen, die sieht mir aber etwas unsauber aus:

Delphi-Quellcode:
TfrxMemoView(frxReportMakePlan.Pages[1].FindObject('Memo1')).Text := 'Test Test Test';

Danke für Eure Hilfe,

Michael

Bummi 26. Okt 2011 21:54

AW: FastReport: Auf Objekt im Quelltext zugeifen
 
Aus dem Programm heraus über Variablen die Du dem Report mitgibst und verwendest, oder
frxReport1BeforePrint(Sender: TfrxReportComponent) ... hier kommt jede Komponente vorbei bevor sie gedruckt wird.

Lemmy 26. Okt 2011 21:55

AW: FastReport: Auf Objekt im Quelltext zugeifen
 
Hi,


code sieht korrekt aus - dumm wenn Du Memo1 mal umbenennst, da knallt dann alles.
Besser ist es in der Reportvorlage eine Variable anzulegen, dem Memo diese Variable zuzuweisen und dann im Delphicode diese Variable zu setzen
Delphi-Quellcode:
  frxReport.Variables.Items[iIndex]:=Value;
Vorsicht allerdings bei Variablen die im Scripting verwendet werden - das müssen da dann gültige Bezeichner sein oder wenn es Text sein soll, dann muss der Text mit QuotedStr() eingeschlossen werden.

GRüße

zu langsam...

scrat1979 26. Okt 2011 22:28

AW: FastReport: Auf Objekt im Quelltext zugeifen
 
Danke, werde ich probieren...

Furtbichler 27. Okt 2011 07:03

AW: FastReport: Auf Objekt im Quelltext zugeifen
 
Ich verwende immer ein TfrxUserDataset. Das finde ich flexibler, denn mit der hier geposteten Lösung, ist
Zitat:

Zitat von scrat1979 (Beitrag 1132712)
...momentan noch namens Memo1

nicht mehr ohne Weiteres zu ändern. Will sagen: 'FindComponent' ist general keine gute Praxis, da man sich auf Namen verlassen muss, die an anderer Stelle jederzeit verändert werden können. Da reicht es schon, wenn ein Praktikant etwas Gutes tun möchte, und den Reportkomponenten aussagekräftige Namen spendiert.

Ich verwende generell TfrxUserDatasets, um ein (logisches) Objekt innerhalb des Reports abzubilden. So kann ich z.B. sehr elegant Lookups verbergen. Wenn ich z.B. ein Artikelobjekt habe, in dem nur die Artikel-ID abgelegt ist, jedoch im Report die Artikelbezeichnung benötigt wird, dann erstelle ich im 'Artikel'-Userdataset einfach ein Feld 'Artikelbezeichnung', und im OnGetValue-Event suche ich dann in meiner Artikeltabelle nach der Bezeichnung.

scrat1979 27. Okt 2011 09:36

AW: FastReport: Auf Objekt im Quelltext zugeifen
 
Danke für die Info, führe ich mir zu Gemüte!


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:00 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