![]() |
FastReport + Datenbank Anfänger Fragen
Ich möchte zukünftig in meiner Windows VCL Anwendung einen PDF (Word) Report erzeugen und habe mir da FastReport dafür rausgesucht.
Das scheint das ganze ja auch ganz gut zu können jedoch ergeben sich bei mir ein paar grundlegende Fragen wie ich es am Besten nutze. Nun habe ich aber sowohl bei FastReport also auch bei Datenbanken keine Vorkenntnisse. Ich benötige einige individuelle Textfelder + Grafiken am Anfang und dann eine Wiederholung von x Screenshots (am besten als PNG) mit etwas Text dazu (diese liegen nicht in einer Datenbank vor). Die Individuellen Grafiken und Texte dachte ich mit FindObject zu lösen und dann einfach den Inhalt zuweisen. Für den Wiederholbereich bleibt wohl nur eine In-Memory-Table übrig. Da dacht ich dann an eine TFDMemTable. Das Programm soll bei Kunden laufen. Also alles bei der Installation mitbringen (am besten in der Exe haben). Deshalb würde ich die Datenbank (Table) lieber umgehen - scheint aber wohl nicht zu gehen. Nun bleiben mir einige Fragen: 1. Ist dies ein guter Weg oder würdet ihr anders vorgehen (evtl. sogar anderen Reportgenerator?)? Viele Code samples findet man dazu leider nicht. 2. Muss ich irgendwelche Datenbanktreiber beim Kunden installieren? Das würde ich gerne vermeiden, da dies immer irgendwelche Probleme mit sich bringt. 3. Gehen PNG Bilder überhaupt in FastReport? Laut Hilfe gehen die wohl nicht an Grafikobjekte zuzuweisen. BMP sind zu groß und alle anderen verlustbehaftet. Zu Word wären zumindest PNG optimal. Was wäre da zu empfehlen. Ich hoffe ihr könnt mir da etwas Starthilfe geben. |
AW: FastReport + Datenbank Anfänger Fragen
Hallo,
manche der Dinge die du möchtest (wiederholwerte) gehen auch ohne Datenbank. Auf FastReports Seite ist dazu aber schon ein DataSet (das von FR) zu benutzen und dem kann man seine Werte dann in einem Event füttern. Theoretisch sollten bei FR auch Beispiele mit installiert werden. Ich nutze FR auch und denke, dass deine Anforderungen damit umsetz7bar sind. Hab' nur gerade keine Zeit für weitere Details. Grüße TurboMagic |
AW: FastReport + Datenbank Anfänger Fragen
Vielen Dank!!!
Ich habe es mal soweit kurz getestet. Grundlegend bekomm ich wohl das meiste mit dem DataSet hin. Für Text geht auch der Wiederholbereich auch ganz gut. Aber ich für das Bild hab ich keine Idee, wie ich das zum laufen bekomme. Ich habe Picture2 im Wiederholbereich eingefügt und dies auf das field picture im TfrxUserDataSet (MasterDS) zugewiesen. Per folgender procedure kann ich perfekt den Text für MemoFelder setzen. Aber für die Grafik finde ich keine Weg wie es überhaupt geht. Ich kann das Bitmap (oder PNG) ja nicht dem variant zuweisen.
Code:
Hat da jemand eine Tipp, wie ich das Bild im Report ohne Datenbank setze?
procedure TForm1.MasterDSGetValue(const VarName: String; var Value: Variant);
//var p: TBitmap; begin if CompareText(VarName, 'name') = 0 then Value := Master[MasterNo][2]; if CompareText(VarName, 'year') = 0 then Value := Master[MasterNo][3]; if CompareText(VarName, 'picture') = 0 then begin // p.Create; // p.LoadFromFile('.\pic1.bmp'); // Value:= p; end; end; |
AW: FastReport + Datenbank Anfänger Fragen
Zitat:
![]()
Delphi-Quellcode:
Es stehen mehrere Wege offen und alle führen dich sicher ans Ziel.
procedure ...DoReportBeforePrint(pmSender: TfrxReportComponent);
var fileName: TFileName; begin if pmSender is TfrxPictureView then begin fileName := TPath.Combine(ImageFileDir, TPath.ChangeExtension(TfrxPictureView(pmSender).Name, '.png')); if TFile.Exists(fileName) then TfrxPictureView(pmSender).Picture.LoadFromFile(fileName); Bis bald... Thomas |
AW: FastReport + Datenbank Anfänger Fragen
Super. Das BeforePrint Ereignis funktioniert bestens - vielen Dank.
|
AW: FastReport + Datenbank Anfänger Fragen
Jupp! Das war glaube ich auch was ich als Event im Kopf hatte.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:42 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