Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Rave Report - Datenbank mit Bilder ausgeben (https://www.delphipraxis.net/49935-rave-report-datenbank-mit-bilder-ausgeben.html)

needatip 18. Jul 2005 15:32


Rave Report - Datenbank mit Bilder ausgeben
 
:x Hallo zusammen.


Ich stehe vor folgender Aufgabe.
Ich benötige eine Ausgabe von mehreren hundert Datensätzen mit kleinen Bildern.
Ich möchte einen Rave Report erstellen der einerseits Daten aus einer Datenbank enthällt, und zu jedem Datensatz ein Bild anzeigt.
Das habe ich mit 'Direct Data View' (Datenbankanbindung)in Rave auch hinbekommen, wenn die Bilder in der Datenbank vorliegen.

Da die Datenbank (MSSQL-Server) allerdings mit zunehmend vielen Bildern sehr umfangreich wird, habe ich mich entschlossen die Bilder nur als Pfad in der Datenbank zu hinterlegen und dann zur Laufzeit von einem Verzeichnis zu laden.
Mit meinem Delphi Formular klappt das auch einwandfrei.

Nun soll ich aber einen Ravereport erstellen, der eben auch den Text aus der Datenbank und die entspr. Bilder zum Datensatz zeigt.
Wie stelle ich es an, dass die Bilder an den RaveReport übergeben werden, also von der Festplatte geladen werden?
Oder muss man diese in Rave direkt laden (LoadFromFile) oder so?
Wie steht es dann mit der Zuordnung zu den jeweiligen Datensätzen ?

Benutze Rave 5.0.8 (VCL7)

Bitte um Hilfe !
Danke.

merlin17 18. Jul 2005 15:36

Re: Rave Report - Datenbank mit Bilder ausgeben
 
Hallo,

http://www.nevrona.com/Default.aspx?tabid=136
statt Parameter nimmst Du einfach das Datenfeld;


:-) thomas, TeamNevrona

needatip 18. Jul 2005 16:14

Re: Rave Report - Datenbank mit Bilder ausgeben
 
Danke, funktioniert mit Bitmap bmp.
Hab aber Jpeg Dateien.
Wie kann ich auch Jpeg Dateien anzeigen ?
Was muss ich dazu ergänzen ?

merlin17 18. Jul 2005 16:48

Re: Rave Report - Datenbank mit Bilder ausgeben
 
d.h. bmp oder jpg in der Datenbank bzw. auf der Festplatte ?!

-> kein Problem für Rave.... auf der AddOn-Seite von nevrona.com/rave gibt es
für JPG ein AddOn (Freeware) und dann mit DataMirrorSection unterscheiden (über
ein RaveCalcField; (Char(1) reicht.... ).

alternativ kannst du noch jpg in bmp umwandeln (aber m.E. nicht sinnvoll)


:-) thomas, TeamNevrona

needatip 19. Jul 2005 08:56

Re: Rave Report - Datenbank mit Bilder ausgeben
 
OK, hab es downgeloaded und dann nach Anleitung vorgegangen.
Die ersten 3 Punkte habe ich noch kapiert, aber bein letzten Punkt haperts.
Kannst Du mir da nochmal helfen wie ich da vorgehen soll.

Die unit NDCsJPEG hab ich mit in die uses Klausel in mein Formular auf dem die Rave
Komponente sitzt mit eingebunden.
"uses NDCsJPEG"

Bekomm aber dann beim Start die Fehlermeldung "...Klasse TRaveJpegImage nicht gefunden...."
Seh den Wald vor lauter Bäumen nicht !

Benutze Delphi 7 und Rave 5.0.8 (VCL7).

Danke.

Installation instructions for TRaveJPEGImage
--------------------------------------------

1: Extract the files in this archive in your Rave main directory
(normally C:\RAVE4). Make sure to expand with directories so that the source
will be placed in it's own directory.

2: Copy the NDCsJPEG.PAS file into the appropriate directory for the version
of Delphi or C++Builder that you are using (for Delphi 5.0 it would normally
be C:\RAVE4\D5).

3: Start Rave, go to the preferences dialog (Edit|Preferences), select the
Packages tab and add the C:\RAVE4\ND_JPEG.BPL package file to the list of
installed package and click OK.

That's it. The only other remaining items that you need to make sure to do is
include the unit NDCsJPEG in the uses clause of your Delphi or C++Builder
application (normally in the same unit containing your TRaveProject component)
and call the RaveRegister procedure inside the NDCsJPEG unit (normally a call
to "NDCsJPEG.RaveRegister;" in the TRaveProject.OnCreate event). Failure to
follow these two steps will result in runtime errors when loading a report
project (.RAV file) containing TRaveJPEGImage components.

merlin17 19. Jul 2005 20:54

Re: Rave Report - Datenbank mit Bilder ausgeben
 
Zitat:

"NDCsJPEG.RaveRegister;" in the TRaveProject.OnCreate event
hier stehts (siehe oben)

:-) thomas

needatip 20. Jul 2005 09:39

Re: Rave Report - Datenbank mit Bilder ausgeben
 
ok, funzt.

hab das genauso gemacht wie mit der Bitmapdatei .bmp im EventEditor in Rave.
Delphi-Quellcode:
MyJPEGImage.FileLink := RaveProject.GetParam('pMyReportImage');
Leider bekomm ich aber eine Fehlermeldung beim compilieren.
Unknown Identifier "FileLink".

Das mit..
Zitat:

DataMirrorSection unterscheiden (über
ein RaveCalcField; (Char(1) reicht.... ).
hab ich nicht kapiert.
Kansst du das bitte ausführen.

thx.

needatip 29. Jul 2005 18:15

Re: Rave Report - Datenbank mit Bilder ausgeben
 
Komm einfach nicht weiter mit Rave.
Wie kann ich dann die entsprechenden Bilder zu den einzelnen Positionen laden ?

merlin17 31. Jul 2005 11:09

Re: Rave Report - Datenbank mit Bilder ausgeben
 
wie liegen die Bilder vor ??

:-) thomas

needatip 1. Aug 2005 09:20

Re: Rave Report - Datenbank mit Bilder ausgeben
 
Die Bilder liegen als jpeg Format in einem Verzeichnis. Insgesamt ca. 2000.
Ich möchte einen Bildkatalog drucken.
Zu jedem Datensatz soll dann das entspr. Bild geladen werden.

needatip 3. Aug 2005 13:56

Re: Rave Report - Datenbank mit Bilder ausgeben
 
Die Jpeg AddOn Komponente hab ich schon installiert, aber wie lädt man jetzt die Bilder zu den jeweiligen Datensätzen.
Kann man das mit Rave überhaupt oder soll ich lieber einen anderen Reportgenerator nehmen.
Bitte um Hilfe.

merlin17 4. Aug 2005 08:05

Re: Rave Report - Datenbank mit Bilder ausgeben
 
so auf die schnelle...

http://www.delphipraxis.net/internal...stomconnection
und den Einsatz von den RaveCalcFields
Delphi-Quellcode:
procedure TForm1.CustomerCXNGetCols(Connection: TRPCustomConnection);
begin
  With Connection do begin
    DoGetCols;
    WriteField('Bild', dtGraphic, 30, '', '');
  end; { with }
end;
Delphi-Quellcode:
procedure TForm1.CustomerCXNGetRow(Connection: TRPCustomConnection);
  With Connection do begin
    DoGetRow; // alle "echte" Datenfelder
    WriteBlobData(Stream.Memory^, Stream.Size);
 end;
end;
damit löst Du dein Problem.


:-) thomas, TeamNevrona

needatip 7. Aug 2005 18:30

Re: Rave Report - Datenbank mit Bilder ausgeben
 
:hello: Jetzt hab ich es hinbekommen.
Funktioniert einwandfrei.

Danke nochmals.

Karstadt 8. Nov 2005 13:24

Re: Rave Report - Datenbank mit Bilder ausgeben
 
Hallo. Bei mir mit meinen Rave Report 5.0 funktioniert das nicht. Wo bekommt man die neuesten Updates für das Report Programm? Auf der hersteller seite habe ich nicht gefunden (trotz der Registierung)

MFG

Viktor

merlin17 8. Nov 2005 13:38

Re: Rave Report - Datenbank mit Bilder ausgeben
 
Victor,

welche Rave version hast Du genau ? in RvProject ist 5.0.4 die Original und 5.0.8 die "update"-version von Rave 5 BE für Delphi 7.
Das Update gibt es nicht von Nevrona (dort gibt es nur die BEX-Updates <g>) sondern nur von Borland, im Delphi7-registered-User-Bereich!
Achte bei den AddOn auf die richtige Version (4.09, 5.0, 5.13 BEX, 6.01 BE, 6.03/04 BEX)

:-) thomas, TeamNevrona

Karstadt 8. Nov 2005 16:33

Re: Rave Report - Datenbank mit Bilder ausgeben
 
Hallo. Meine Version ist 5.0.04 (VCL7)


Wo genau muss ich mich bei Borland registrieren, damit ich Updates runteladen kann. Momentan habe ich D7.0 :?

merlin17 8. Nov 2005 20:36

Re: Rave Report - Datenbank mit Bilder ausgeben
 
http://www.nevrona.com/Default.aspx?tabid=178

:-) thomas, TeamNevrona

Karstadt 8. Nov 2005 21:40

Re: Rave Report - Datenbank mit Bilder ausgeben
 
http://www.borland.com/downloads/reg...ad_delphi.html

Wie funtkioniert die Registierung bei Borland? Ich habe mich registiert, dennoch habe ich kein Zugriff auf Updates. Wenn ich mich 1 anmelde hier:

http://www.borland.com/downloads/reg...es_prompt.html

dann kommt eine weiteren ameldefenster (was muss ich dann eingeben)

Muss man die Registierung telefonisch durchführen?

Karstadt 11. Nov 2005 14:45

Re: Rave Report - Datenbank mit Bilder ausgeben
 
Nun habe ich die richtige Version runtergeladen und Rave upgadatet... :-D

Icarus666 23. Nov 2005 17:57

Re: Rave Report - Datenbank mit Bilder ausgeben
 
Hallo!

Habe das gleiche Problem.
Könnt Ihr das nochmal langsam zum mitschreiben wiederholen?
Also den Tip +92 von der Seite von Nevrona konnte ich noch nachvollziehen. Allerdings übergebe ich per Parameter nur den Inhalt des aktuellen Datenfelds. Somit wird jeweils immer nur dasselbe Bild angezeigt.
Gibt es keine einfache Lösung (für Dummies sozusagen).

Karstadt 24. Nov 2005 08:28

Re: Rave Report - Datenbank mit Bilder ausgeben
 
Hallo. Ich verwende in diesen Fall den "Report wizzard". Versuche das gleiche.

Icarus666 25. Nov 2005 15:45

Re: Rave Report - Datenbank mit Bilder ausgeben
 
Also bei Rave sind bei mir nur 2 Report Wizards dabei. Einer für Standard-Tabellen und einer für Master/Detail-Tabellen.
Beide bringen mich bei meinem Problem leider nicht weiter. Oder meinst du einen anderen Wizard?

Gibt es eigentlich gute (kostenfreie) Alternativen zu Rave?

merlin17 25. Nov 2005 21:36

Re: Rave Report - Datenbank mit Bilder ausgeben
 
Parameter sind nur für einzelsachen;
für Datensätze o.ä. sollte man entweder die Rave CalcFields oder gleich die CustomConnection nehmen;
beide Begriffe sollten hier in der DP zu finden sein!


:-) thomas, TeamNevrona

Icarus666 27. Nov 2005 17:38

Re: Rave Report - Datenbank mit Bilder ausgeben
 
Ja, ich denke so könnte es gehen. Leider hänge ich mal wieder.
Ich wollte erst einmal die Custom-Connection wie folgt mit einem Memo-Feld ausprobieren und dann das Ganze für meine Zwecke anpassen.

Delphi-Quellcode:
procedure TfrmReport.RvCustomConnection1GetCols(Connection: TRvCustomConnection);
begin
  Connection.WriteField('FullAddress', dtMemo, 30, '', '');
end;

procedure TfrmReport.RvCustomConnection1GetRow(Connection: TRvCustomConnection);
var
  Stream: TMemoryStream;
  Memo: TMemo;
  s: String;
begin
  s := DataModule1.QueryDVD.FieldByName('name').AsString;
  s := s + ' (' + DataModule1.QueryDVD.FieldByName('id').AsString + ') : ' + #13#10;
  s := s + DataModule1.QueryDVD.FieldByName('cover').AsString;
  Stream := TMemoryStream.Create;
  Memo := TMemo.Create(Self);
  try
    Memo.Text := s;
    Memo.Lines.SaveToStream(Stream);
    Stream.Position := 0;
    Connection.WriteBlobData(Stream.Memory^, Stream.Size);
  finally
    Stream.Free;
    Memo.Free;
  end;
end;
Leider kommt bei mir dann folgende Fehlermeldung:

Field DataView3:FullAddress. Datatype expected: dtString Datatype found: dtMemo.

Beim erstellen des Reports kann ich aber gar nicht auswählen, welcher Datentyp mein Feld hat :gruebel:
Eine Suche im Forum hat mich leider auch nicht weitergebracht. Bitte HILFE!

Keldorn 27. Nov 2005 19:14

Re: Rave Report - Datenbank mit Bilder ausgeben
 
Hallo

du solltest ein neues Thema aufmachen, dein Thread hat mit der ursprünglichen Frage nix mehr zu tun.

Refreshe mal dein Dataview bei deinem laufendem Delphiprogramm.

Wenn du sowieso schon mit Datenbank-kompos arbeitest, warum gehst du dann umständlich über ein Customconnection?

Mfg Frank

Icarus666 27. Nov 2005 23:04

Re: Rave Report - Datenbank mit Bilder ausgeben
 
So. Habe mein letztes Problem gelöst.
Es lag daran, dass ich zwar die Anwendung beim Erstellen des Reports im Hintergrund laufen hatte, allerdings war die Form noch nicht erstellt (mache ich immer erst zur Laufzeit, kurz bevor ich sie brauche). So konnte die Connection noch nichts von meinem Feld wissen.

Zitat:

du solltest ein neues Thema aufmachen, dein Thread hat mit der ursprünglichen Frage nix mehr zu tun.
Doch, es geht mir immer noch um das ursprüngliche Problem. Ich habe eine Bilder-Datenbank, in der nur Links, oder Pfade zu Bildern gespeichert sind. Da ich aber im Report die Bilder sehen will, und nicht den Text-String, muss ich mir was einfallen lassen. Das mit dem Memo, war nur, um die Custom-Connection zu testen.

(Aber ich denke, ich bin jetzt nahe dran).

Zitat:

Wenn du sowieso schon mit Datenbank-kompos arbeitest, warum gehst du dann umständlich über ein Customconnection?
Bin für jeden einfacheren Vorschlag offen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:37 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 by Thomas Breitkreuz