AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia FastReport + Datenbank Anfänger Fragen
Thema durchsuchen
Ansicht
Themen-Optionen

FastReport + Datenbank Anfänger Fragen

Ein Thema von user69 · begonnen am 18. Nov 2022 · letzter Beitrag vom 19. Nov 2022
Antwort Antwort
user69

Registriert seit: 11. Dez 2004
107 Beiträge
 
#1

FastReport + Datenbank Anfänger Fragen

  Alt 18. Nov 2022, 09:59
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.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#2

AW: FastReport + Datenbank Anfänger Fragen

  Alt 18. Nov 2022, 13:21
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
  Mit Zitat antworten Zitat
user69

Registriert seit: 11. Dez 2004
107 Beiträge
 
#3

AW: FastReport + Datenbank Anfänger Fragen

  Alt 18. Nov 2022, 19:43
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:
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;
Hat da jemand eine Tipp, wie ich das Bild im Report ohne Datenbank setze?
  Mit Zitat antworten Zitat
mytbo

Registriert seit: 8. Jan 2007
472 Beiträge
 
#4

AW: FastReport + Datenbank Anfänger Fragen

  Alt 18. Nov 2022, 19:44
Ich hoffe ihr könnt mir da etwas Starthilfe geben.
Die Aufgabe lässt sich in FastReport einfach erledigen. Du kannst z.B. eigene Variablen anlegen. Für deine Zwecke bietet sich auch eine universelle Anbindung, wie ich sie hier beschrieben habe, an. Wenn du die Ressourcen von Hand laden willst, kannst du es auch im Event OnBeforePrint der Report-Komponente erledigen. Bei dir würde sich folgendes Schema anbieten:
Delphi-Quellcode:
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);
Es stehen mehrere Wege offen und alle führen dich sicher ans Ziel.

Bis bald...
Thomas

Geändert von mytbo (18. Nov 2022 um 19:58 Uhr) Grund: Event Zuordnung präzisiert
  Mit Zitat antworten Zitat
user69

Registriert seit: 11. Dez 2004
107 Beiträge
 
#5

AW: FastReport + Datenbank Anfänger Fragen

  Alt 19. Nov 2022, 12:08
Super. Das BeforePrint Ereignis funktioniert bestens - vielen Dank.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#6

AW: FastReport + Datenbank Anfänger Fragen

  Alt 19. Nov 2022, 12:24
Jupp! Das war glaube ich auch was ich als Event im Kopf hatte.
  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 15:52 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