Hallo!
Da ich, wie einige andere hier im Forum, einen JPG Support von AvERP (oder besser gesagt von FastReport) vermisse, habe ich einmal etwas gesurft und bin dabei auf das FastReport Forum gestoßen, wo ich die notwendigen Infos gefunden habe:
http://www.fast-report.com/en/forum/ind ... wtopic=798
http://www.fast-report.com/en/forum/ind ... wtopic=705
Der BMP Support durch FastReport hat ja bereits zuvor funktioniert (d.h. man konnte statisch ein Bild einbinden, dieses aus einem Blob Feld der Datenbank holen, bzw. es. z.B. während der Report Generierung von einem Pfad mit LoadFromFile laden)
Ein JPG konnte zwar im Designer dargestellt werden, allerdings wurde es nicht gespeichert, auch alle anderen Dinge funktionierten mit JPG Dateien nicht.
Nun habe ich mir einmal den AvERP Sourcecode (allerdings nur die Version 2.0.0.8 ) genommen und dabei folgende Änderungen durchgeführt:
In der FR.inc habe ich den JPEG Support ( {$DEFINE JPEG} ) aktiviert und das Paket in Delphi 5 noch einmal installiert.
Und in den Quellcode Dateien
AvERP.exe: fPreview.pas
AvERPDesign: fDBasis.pas,UDBasis.pas
bei Uses die gewünschte JPEG Unterstützung hinzugefügt.
Dann noch einmal die AvERPStart.exe, AvERPDesign.exe und AvERP.exe kompiliert.
Danach schnell ein Druckformular erstellt, dass eine exteren JPG Datei lädt (mittels LoadFromFile z.B. eine im Artikelstamm hinterlegte Datei auf einem Server) -> es funktioniert.
D.h. nun sollten sowohl einmalig in den Report eingebundene JPGs funktionieren als auch das Verknüpfen mit externen Dateien. Da, die Funktion um Bilder in die Firebird Datenbank aufzunehmen nicht verändert wurde, sind in der DB sicher nur BMPs und diese können wie bisher verwendet werden. (Ohne also in Komplikationen zu laufen, dass FastReport ev. bei einem BlobFeld ein BMP vermutet aber ein JPG komprimiertes Bild bekommt)
Nun zu meiner Frage: Gibt es einen Grund, warum dieses Feature, bei doch überschaubarem Aufwand, noch nicht implementiert wurde? Wo liegt der Hund begraben, dass es diese Funktion noch nicht in der letzten offiziellen AvERP.exe gibt?
SG
Markus
JPG Unterstützung für FastReport
Moderator: SYNERPY
-
- Beiträge: 27
- Registriert: So Sep 18, 2005 1:43 pm
-
- Beiträge: 589
- Registriert: Mi Apr 16, 2008 7:51 am
Hallo Markus,
das hört sich ja äußerst interessant an. Reiche doch den kommentierten Quellcode mit den Erweiterungen an Synerpy weiter, vielleicht wird das dann ja schneller eingebaut als Du denkst. Das wäre doch was - und das noch ohne Datenbankänderung
Wie ist es denn mit dem Zeitverhalten beim Laden der JPG's: Wartet der Report denn, bis die JPG-Daten alle da sind ? Bei den in der DB gespeicherten BMP's in den BLOB-Feldern gibt's ja manchmal den Effekt, dass das Bild (z.B. Firmenlogo) im Report schlichtweg fehlt
das hört sich ja äußerst interessant an. Reiche doch den kommentierten Quellcode mit den Erweiterungen an Synerpy weiter, vielleicht wird das dann ja schneller eingebaut als Du denkst. Das wäre doch was - und das noch ohne Datenbankänderung
Wie ist es denn mit dem Zeitverhalten beim Laden der JPG's: Wartet der Report denn, bis die JPG-Daten alle da sind ? Bei den in der DB gespeicherten BMP's in den BLOB-Feldern gibt's ja manchmal den Effekt, dass das Bild (z.B. Firmenlogo) im Report schlichtweg fehlt
Gruß
Geri12
Software-Version: V4.2.5.2
FDB-Version: AvERP2008-A.14
Geri12
Software-Version: V4.2.5.2
FDB-Version: AvERP2008-A.14
-
- Beiträge: 515
- Registriert: Di Okt 19, 2004 5:45 am
- Wohnort: Diepholz
Re: JPG Unterstützung für FastReport
Hallo Markus,
Könnten Sie das mal ein wenig genauer beschreiben.
Ich habe den neuesten Quellcode schon angefordert. Da würde ich das gerne einbauen, ausser meinen eigenen kleinen Änderungen.
das würde mich auch interessieren.markus.fuger hat geschrieben: In der FR.inc habe ich den JPEG Support ( {$DEFINE JPEG} ) aktiviert und das Paket in Delphi 5 noch einmal installiert.
Und in den Quellcode Dateien
AvERP.exe: fPreview.pas
AvERPDesign: fDBasis.pas,UDBasis.pas
bei Uses die gewünschte JPEG Unterstützung hinzugefügt.
Könnten Sie das mal ein wenig genauer beschreiben.
Ich habe den neuesten Quellcode schon angefordert. Da würde ich das gerne einbauen, ausser meinen eigenen kleinen Änderungen.
MfG
KDP
----------------------------------------------------------
Durch den Computer spart der Mensch so viel Zeit,
dass er diese am Computer verbringen kann.
KDP
----------------------------------------------------------
Durch den Computer spart der Mensch so viel Zeit,
dass er diese am Computer verbringen kann.
-
- Beiträge: 27
- Registriert: So Sep 18, 2005 1:43 pm
Hallo!
Eines gleich einmal vorweg: Ich bin absolut kein Delphi Profi, und weiß nicht, ob verwendete Komponenten nur einmal bei der Installation oder bei jeder Verwendung kompiliert werden, also kann man sich möglicherweise Teile des ersten Schrittes sparen.
Vorrausgesetzt wird, dass sich AvERP bereits korrekt unter Delphi5 kompilieren lässt.
1.a) Deinstallieren der FastReport Komponente (bedingt auch eine Deaktivierung des ExportFilters, da dieser von FastReport abhängig ist)
1.b.) Änderung der Datei FR.inc (im FastReport\source Verzeichnis)
von
1.c) FastReport über FR5.dpk wieder installieren und das Paktet ExportPack wieder aktivieren.
2.) Die AvERP Projektdatei öffnen (AvERP_Project.pbg) und in der Projektverwaltung folgende Dateien suchen:
fPrievew.pas
UDBasis.pas
fDBasis.pas
in jeder dieser 3 Dateien die "uses" clause im JPEG erweitern.
z.B. fDBasis
aus
Das wars eigentlich schon (Hoffe ich habe nichts vergessen) - Sollte etwas nicht funtkionieren, einfach ein PM oder hier posten
Noch ein kurzes Wort zu
SG
Markus
Eines gleich einmal vorweg: Ich bin absolut kein Delphi Profi, und weiß nicht, ob verwendete Komponenten nur einmal bei der Installation oder bei jeder Verwendung kompiliert werden, also kann man sich möglicherweise Teile des ersten Schrittes sparen.
Vorrausgesetzt wird, dass sich AvERP bereits korrekt unter Delphi5 kompilieren lässt.
1.a) Deinstallieren der FastReport Komponente (bedingt auch eine Deaktivierung des ExportFilters, da dieser von FastReport abhängig ist)
1.b.) Änderung der Datei FR.inc (im FastReport\source Verzeichnis)
von
nach//------------------- JPEG images -----------------------------------
// JPEG images - only available in Delphi 3 and above. Adds approximately
// 100Kb to your EXE.
// If you want to show jpeg images in "Picture" object, uncomment
// the following line:
//{$DEFINE JPEG}
Damit wird einmal seitens FastReport der JPEG Support aktiviert. Speichern und schließen{$DEFINE JPEG}
1.c) FastReport über FR5.dpk wieder installieren und das Paktet ExportPack wieder aktivieren.
2.) Die AvERP Projektdatei öffnen (AvERP_Project.pbg) und in der Projektverwaltung folgende Dateien suchen:
fPrievew.pas
UDBasis.pas
fDBasis.pas
in jeder dieser 3 Dateien die "uses" clause im JPEG erweitern.
z.B. fDBasis
aus
mach....
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
IB_Components,IB_Controls, FR_DSet, FR_Class, StdCtrls, FR_DBSet, FR_Desgn, FR_Rich,
FR_E_HTM, FR_E_CSV, FR_E_RTF, FR_E_TXT, FR_RRect, FR_Chart, FR_BarC,
FR_Shape, FR_ChBox, FR_OLE, FR_Pars, FR_Dctrl, IB_Session, mask, extctrls,
Buttons, Menus, IB_StoredProc, Printers, ShellAPI, WinSpool, ExportPack;
....
Da von den Änderungen AvERP.exe und AvERPDesign.exe betroffen sind, diese beiden neu kompilieren. (Ich habe mir auch noch einmal die AvERPStart.exe kompiliert, damit ich eine zu dieser Version passende AvERPStart habe.....
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
IB_Components,IB_Controls, FR_DSet, FR_Class, StdCtrls, FR_DBSet, FR_Desgn, FR_Rich,
FR_E_HTM, FR_E_CSV, FR_E_RTF, FR_E_TXT, FR_RRect, FR_Chart, FR_BarC,
FR_Shape, FR_ChBox, FR_OLE, FR_Pars, FR_Dctrl, IB_Session, mask, extctrls,
Buttons, Menus, IB_StoredProc, Printers, ShellAPI, WinSpool, ExportPack, JPEG;
....
Das wars eigentlich schon (Hoffe ich habe nichts vergessen) - Sollte etwas nicht funtkionieren, einfach ein PM oder hier posten
Noch ein kurzes Wort zu
Das stimmt, bedingt allerdings auch, dass nur Dateien, die auf einem Netzlaufwerk liegen (damit alle User die selben Dateien verwenden und natürlich von FastReport erreichbar sein müssen) verwendet werden können. Ein Anwendungsfall wären ev. Drucksorten, die ein Bild verwenden, dass in der Datenbank unter Artikel -> Dateien abgelegt wurde. Mit einer einfachen Prozedur, könnte man somit einen Verzeichnispfad ermitteln (da ja ev. meherer Dateien bzw. Bilder hinterlegt sein können) diesen dann an den Report übergeben und mit LoadFromFile(<PfadZurDatei>) laden.und das noch ohne Datenbankänderung
SG
Markus
-
- Beiträge: 27
- Registriert: So Sep 18, 2005 1:43 pm
-
- Beiträge: 515
- Registriert: Di Okt 19, 2004 5:45 am
- Wohnort: Diepholz
Hallo Markus,
vielen Dank für die ausführliche Anleitung.
Sobald ich die neuesten Quellcodes habe werde ich das einbauen, zumal auch bei uns ab und an das Logo nicht gedruckt wird.
Vielleicht wird es mit JPEG besser.
vielen Dank für die ausführliche Anleitung.
Sobald ich die neuesten Quellcodes habe werde ich das einbauen, zumal auch bei uns ab und an das Logo nicht gedruckt wird.
Vielleicht wird es mit JPEG besser.
MfG
KDP
----------------------------------------------------------
Durch den Computer spart der Mensch so viel Zeit,
dass er diese am Computer verbringen kann.
KDP
----------------------------------------------------------
Durch den Computer spart der Mensch so viel Zeit,
dass er diese am Computer verbringen kann.
-
- Beiträge: 79
- Registriert: Do Feb 16, 2006 8:10 am
RE: JPEG
Das Problem mit JPEG-Dateien sind die Grundkomponenten.
In der verwendeten IBObjects-Komponente und in Delphi selbst wird JPEG nicht direkt unterstützt. Mit der zusätzlichen JPEG-Unit könnte man zwar ein paar Lücken schließen, aber nicht alle durchgängig.
In der verwendeten IBObjects-Komponente und in Delphi selbst wird JPEG nicht direkt unterstützt. Mit der zusätzlichen JPEG-Unit könnte man zwar ein paar Lücken schließen, aber nicht alle durchgängig.