FastReport Tipps und Tricks: Bilder zur Laufzeit laden

Aus GEVITAS
Version vom 18. September 2017, 21:48 Uhr von Gevitas (Diskussion | Beiträge) (Im Report)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

1 Allgemeines

Man kann Bilder auch zur Laufzeit dynamisch aus der Datenbank laden.

Das heißt, es werden die Bilder angezeigt, zu dem ein Link in der Datenbank liegt.

Beispiel:

In den Artikel-Stammdaten kann man unter dem Register "Dokumente" auch Bild-Dateien hinterlegen. Genauer gesagt, hinterlegt man Links zu Dateien, die auf einem Server liegen.


2 Im Report

Im Report fügt man ein Grafik-Objekt ein. Dieses bleibt erst mal leer, man stellt aber die Dimensionen usw. ein.

Im Code muss man nun das Ereignis "OnBeforePrint" des Bandes durch Doppelklick erzeugen. Dann fügt man diesen Code ein:

procedure DetailDataDokumenteOnBeforePrint(Sender: TfrxComponent);
begin 

  if <ArtikelDokumente."Dateiname"> > '' then
  begin
    if ( Pos( '.JPG',Uppercase(<ArtikelDokumente."Dateiname">) ) > 0 )
    or ( Pos( '.JPEG',Uppercase(<ArtikelDokumente."Dateiname">) ) > 0 )
    or ( Pos( '.PNG',Uppercase(<ArtikelDokumente."Dateiname">) ) > 0 )
    or ( Pos( '.BMP',Uppercase(<ArtikelDokumente."Dateiname">) ) > 0 )
    or ( Pos( '.WMF',Uppercase(<ArtikelDokumente."Dateiname">) ) > 0 )
    or ( Pos( '.EMF',Uppercase(<ArtikelDokumente."Dateiname">) ) > 0 )
    or ( Pos( '.ICO',Uppercase(<ArtikelDokumente."Dateiname">) ) > 0 ) then
       Picture1.Picture.LoadFromFile( trim(<ArtikelDokumente."Pfadname">) + trim(<ArtikelDokumente."Dateiname">) )
    else
      Picture1.Picture := Nil;
  end
  else
    Picture1.Picture := Nil;
end;