Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   FastReport-Dateien (.fr3) bei einem Programm mitgeben (https://www.delphipraxis.net/161881-fastreport-dateien-fr3-bei-einem-programm-mitgeben.html)

RWarnecke 26. Jul 2011 04:53

FastReport-Dateien (.fr3) bei einem Programm mitgeben
 
Hallo zusammen,

welche Möglichkeiten gibt es die erstellten Fast Report Dateien bei einem Programm mitzugeben ?

Gruß
Rolf

mkinzler 26. Jul 2011 05:28

AW: FastReport-Dateien (.fr3) bei einem Programm mitgeben
 
Als Datei, Ressource, in einer Datenbank, ...

RWarnecke 26. Jul 2011 05:52

AW: FastReport-Dateien (.fr3) bei einem Programm mitgeben
 
Hallo Markus,

hast Du vielleicht ein Beispiel oder einen Link, wie ich einen Report in einer Resource oder Datenbank mitgebe ?

FredlFesl 26. Jul 2011 06:06

AW: FastReport-Dateien (.fr3) bei einem Programm mitgeben
 
Datenbank: Schau Dir doch einfach mal BLOB-Felder an. Das sind Felder, die beliebig große Binärinformationen speichern können (BLOB = Binary large Object), also Bilder, Dateien usw. Zum Verwenden lädst Du die Datei aus dem BLOB-Feld der Datenbank in einen Stream und dann kannst Du die darin enthaltene FR3-Datei, glaube ich zumindest, direkt verwenden. Wenn das so nicht geht, speicherst Du die FR3-Datei als temporäre Datei ab und verwendest es dann (Windows-TEMP Verzeichnis)

Resource: Wieso ergoogelst Du dir die Antwort nicht einfach selbst? (Hat bei mir 10 sec gedauert)?

RWarnecke 26. Jul 2011 06:13

AW: FastReport-Dateien (.fr3) bei einem Programm mitgeben
 
Zitat:

Zitat von FredlFesl (Beitrag 1113514)
Datenbank: Schau Dir doch einfach mal BLOB-Felder an. Das sind Felder, die beliebig große Binärinformationen speichern können (BLOB = Binary large Object), also Bilder, Dateien usw. Zum Verwenden lädst Du die Datei aus dem BLOB-Feld der Datenbank in einen Stream und dann kannst Du die darin enthaltene FR3-Datei, glaube ich zumindest, direkt verwenden. Wenn das so nicht geht, speicherst Du die FR3-Datei als temporäre Datei ab und verwendest es dann (Windows-TEMP Verzeichnis)

Stimmt, da hätte ich auch selber drauf kommen können.
Zitat:

Zitat von FredlFesl (Beitrag 1113514)
Resource: Wieso ergoogelst Du dir die Antwort nicht einfach selbst? (Hat bei mir 10 sec gedauert)?

Ich würde hier nicht die Frage stellen, wenn ich in Google etwas gefunden hätte. Wahrscheinlich gebe ich nur die falschen Begriffe ein.

FredlFesl 26. Jul 2011 06:20

AW: FastReport-Dateien (.fr3) bei einem Programm mitgeben
 
Zitat:

Zitat von RWarnecke (Beitrag 1113515)
Ich würde hier nicht die Frage stellen, wenn ich in Google etwas gefunden hätte. Wahrscheinlich gebe ich nur die falschen Begriffe ein.

Must Du wohl, denn das ist ja Basiswissen (ich muss aber auch nachschauen)
So gehts (bei mir) "windows resource compiler add binary file" oben als 1.Beitrag ist dann gleich eine Delphi-Referenz :stupid:

mkinzler 26. Jul 2011 07:01

AW: FastReport-Dateien (.fr3) bei einem Programm mitgeben
 
Über einen Stream sollte es sowohl aus einer Ressource oder einen Blobfeld gehen.

Sir Rufo 26. Jul 2011 07:06

AW: FastReport-Dateien (.fr3) bei einem Programm mitgeben
 
Und wieso nicht einfach als Dateien mitgeben? :gruebel:

RWarnecke 26. Jul 2011 07:29

AW: FastReport-Dateien (.fr3) bei einem Programm mitgeben
 
Zitat:

Zitat von Sir Rufo (Beitrag 1113519)
Und wieso nicht einfach als Dateien mitgeben? :gruebel:

Weil ich nicht möchte, dass die Reports geändert werden können und um Fehler zu verhindern, falls ein Anwender mal in den Dateien rumpfuscht.

franktron 26. Jul 2011 08:11

AW: FastReport-Dateien (.fr3) bei einem Programm mitgeben
 
Ich hab die Reporte in der DB Gespeichert. Ist ganz einfach den Report in einem Blob Feld Speichern und dann mit frxReport1.LoadFromStream(Stream1); laden

Lemmy 26. Jul 2011 09:27

AW: FastReport-Dateien (.fr3) bei einem Programm mitgeben
 
Zitat:

Zitat von RWarnecke (Beitrag 1113520)
Zitat:

Zitat von Sir Rufo (Beitrag 1113519)
Und wieso nicht einfach als Dateien mitgeben? :gruebel:

Weil ich nicht möchte, dass die Reports geändert werden können und um Fehler zu verhindern, falls ein Anwender mal in den Dateien rumpfuscht.

Soll er. Ist dann halt kostenpflichtiger Support die Originale wieder herzustellen. Ich habe die FR3 auch mal in einer DB ausgeliefert - würde ich derzeit nicht mehr machen bzw. nur noch dann machen wenn es um eine Mehrplatzanwendung geht, wo dann alle wirklich den identischen Ausdruck brauchen.

Grüße

mkinzler 26. Jul 2011 09:33

AW: FastReport-Dateien (.fr3) bei einem Programm mitgeben
 
Zitat:

Ich habe die FR3 auch mal in einer DB ausgeliefert - würde ich derzeit nicht mehr machen
Darf man fragen warum?

Guido R. 26. Jul 2011 10:46

AW: FastReport-Dateien (.fr3) bei einem Programm mitgeben
 
Ich sehe das ähnlich wie Sir Rufo.
Die FR3-Datei ist einfach eine XML-Datei, also einfacher Text. Die meisten User können aber mit einer solchen Struktur gar nichts anfangen.
Wenn der User dann meint, trotzdem in den Dateien rumzufingern, soll er auch für die Wiederherstellung zahlen.
Je nachdem, welche Datenbank du verwendest, kann man ja auch dort an den den Reports rumfummeln.
Ich z.B. schreibe die FR3-Dateien in Mediumblob-Felder einer MySQL-Datenbank.
Mit einem einfachen Tool wie SQLYog kann man sich diese XML auch wieder im Klartext anzeigen lassen und auch bearbeiten.
Natürlich bestehen noch andere Möglichkeiten die unversehrtheit Deiner Berichte zu gewährleisten. z.B. kannst Du die Berichte in einer
passwortgeschützten ZIP-Datei mitliefern und den jeweiligen Report bei Bedarf entpacken. (Das ZIP-Paket muss ja auch nicht auf ".ZIP" enden)
Das würde jedenfalls die Pflege vereinfachen, wenn Du selber etwas an den Reports ändern willst.

Gruß
Guido

Lemmy 26. Jul 2011 11:08

AW: FastReport-Dateien (.fr3) bei einem Programm mitgeben
 
Zitat:

Zitat von mkinzler (Beitrag 1113536)
Zitat:

Ich habe die FR3 auch mal in einer DB ausgeliefert - würde ich derzeit nicht mehr machen
Darf man fragen warum?

das größte Problem sind da kleine Änderungen an den FR3 - entweder müssen diese während der Laufzeit des Programmes gemacht werden, damit die fr3 auch gleich wieder in der DB liegen um die Änderungen zu testen, oder die fr3 müssen dann beim Start nach der Änderung in die DB. Es macht halt alles komplexer.

Eine Debug-WEiche wäre klar eine Lösung (d.h. im Debug-Mode die fr3 von der Platte laden) - nur bin ich mit solchen Weichen-Lösungen sehr vorsichtig.

Wie gesagt - den einzigen Vorteil der DB-Lösung sehe ich in einem Netzwerk wenn z.B. Endanwender die Reports bearbeiten können sollen und diese Änderung dann bei allen Clients wirksam werden soll. Das ist anders (Netzfreigabe usw.) umständlicher bzw. nur vom entsprechenden Systemadmin wirklich zu lösen (Rechtevergabe).

Weiterhin wüsste ich jetzt im Moment nicht wirklich wie Report-Vererbung in diesen Fällen eingesetzt werden soll, da hier ja auf eine gespeicherte Datei zurück gegriffen wird. Möglich dass hier mit etwas mehr Code eine entsprechende Lösung auch funktionieren könnte - damit habe ich mich aber noch nicht beschäftigt...

Grüße


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