Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Rave
Rave Forum d'entraide sur Rave Reports
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/08/2003, 16h21   #1
Membre Expert
 
Avatar de Harry
 
Homme
Ingénieur développement logiciels
Inscription : juillet 2002
Messages : 1 182
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2002
Messages : 1 182
Points : 1 079
Points : 1 079
Par défaut [Rave][Delphi] integration de fichiers JPG

Bonjour,

Je voudrais savoir comment intégrer des fichiers .JPG dans mes états rave, le report designer ne semble vouloir accepter que des bmp... et, comme je pose toujours des doubles questions, comment integrer un fichier image dans un composant 'bitmap' (ou autre) par programmation à partir de delphi.

(nota : ca fait quatres heures que je passe de forum en forum, de site en site et de bouquin en bouquin et je trouve qu'il manque serieusement d'exemples-explication sur le transfert de données par programmation d'un projet delphi dans un report lors des impressions, si quelqu'un a déja réalisé des projets nécessitant ce type de transferts je suis preneur pour tous type d'exemples , ca me servira très certainement.)
Harry est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2003, 00h24   #2
Nouveau Membre du Club
 
Inscription : août 2002
Messages : 36
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 36
Points : 29
Points : 29
si tu travail sur une application de gestion, il faut d'abord savoir comment enregistrer une image *.jpg dans une bdd.

après cette étape tu peux avoir le résultat voulu.

a+
__________________
1 = 3 ?
TéBeSsI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2003, 09h58   #3
Membre Expert
 
Avatar de Harry
 
Homme
Ingénieur développement logiciels
Inscription : juillet 2002
Messages : 1 182
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2002
Messages : 1 182
Points : 1 079
Points : 1 079
euh, non, pas en enregistrant dans la base de données mais en te transferant directement depuis delphi dans un champ personalisé (composant RvCustomConnection) j'ai trouvé le code suivant sur le site de nevrona :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 uses JPEG;
 
procedure TForm1.ReportSystem1Print(Sender: TObject);
 
var
  Stream: TMemoryStream;
  Image: TJPEGImage;
 
begin
  WITH Sender AS TBaseReport do begin
    Stream := TMemoryStream.CREATE;
    Image := TJPEGImage.CREATE;
    try
      Image.LoadFromFile('image1.jpg');
      Image.SaveToStream(Stream);
      Stream.Position := 0;
      PrintImageRect(1,1,3,3.5,Stream,'JPG');
    finally
      Image.Free;
      Stream.Free;
    end; { tryf }
  end; { WITH }
end;
Mais comment definir les paramètres X1,Y1,X2,Y2 de PrintImageRect?
Harry est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2003, 11h42   #4
Membre Expert
 
Avatar de Harry
 
Homme
Ingénieur développement logiciels
Inscription : juillet 2002
Messages : 1 182
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2002
Messages : 1 182
Points : 1 079
Points : 1 079
Bon, ok, j'ai decidé de reprendre les choses a la base : comment tranferer une donnée dans un rave report sans passer par la bdd?

Voici le code que j'utilise, il est basé sur un 'tip' que j'ai trouvé sur le site de nevrona
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 procedure TFEdition.RvCustomConnection1GetRow(
  Connection: TRvCustomConnection);
 
var Stream: TMemoryStream;
memo : Tmemo;
s1, s2 : string;
i1 : integer;
buffy : PChar;
begin
  WITH Connection do begin
  s1 := 'mesvaleursaintegrer';
 
  Stream := Tmemorystream.CREATE;
  Memo := TMemo.CREATE(self);
  try
      Memo.Text := s1;
      //Memo.LINES.SaveToStream(Stream);
      buffy := PChar(S1);
      Stream.WRITE(buffy ,0);
       //Stream.SaveToStream(buffy);
      Stream.Position := 0;
      WriteBlobData(Stream.Memory^, Stream.Size);
  finally
      Stream.Free;
      Memo.Free;
  end;
  end;
end;
 
procedure TFEdition.RvCustomConnection1GetCols(
  Connection: TRvCustomConnection);
 begin
  WITH Connection do begin
    DoGetCols;
    WriteField('transfert', dtString, 30, 'transfert', '');
 
 
  end; { WITH }
 end;
Le but est d'envoyer un string dans le report. Le message que je recois lors de la tentative d'impression du report est
Citation:
'Attempt to write different data type than defined (column 1/2)'
Vous avez deja résolu ce problème????
Harry est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2003, 17h14   #5
Membre Expert
 
Avatar de Harry
 
Homme
Ingénieur développement logiciels
Inscription : juillet 2002
Messages : 1 182
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2002
Messages : 1 182
Points : 1 079
Points : 1 079
Dernières nouvelles : Il Faut remplacer WriteBlobData par WriteStrData('', S1); et c bon, plus de message d'erreur!!! Par contre la valeur est, sur le document, remplacé par des petits cubes, une idée ? :

En attendant je continue encore à chercher (2 jours que je cherche )

Pas d'idée précise pour le transfert de photos par contre.
Harry est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2003, 11h08   #6
Membre Expert
 
Avatar de Harry
 
Homme
Ingénieur développement logiciels
Inscription : juillet 2002
Messages : 1 182
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2002
Messages : 1 182
Points : 1 079
Points : 1 079
Ca y est, j'ai trouve le pb : c'est dans l'état qu'il fallait chercher!! en fait les champs c'était moi qui les définissait, il a suffi d'executer le projet et de recréer le dataview pour récupérer le champ réellement fonctionnel, c'est strictement identique en visu a ce que j'avais fait en nommant le champ a la main sauf que ca marche nikel!, Fallait le savoir.
Pour info en ajoutant des champs on peu faire un click droit et rafraichir pour les faire apparaitre. Maintenant que ca c'est trouvé, je vai m'atteler a la tâche du transfert de photos.
Je vous tiens au courant de l'avancement.
A+
Harry est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2003, 15h52   #7
Membre Expert
 
Avatar de Harry
 
Homme
Ingénieur développement logiciels
Inscription : juillet 2002
Messages : 1 182
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2002
Messages : 1 182
Points : 1 079
Points : 1 079
Par défaut [resolu] Transfert de photos JPG Delphi7 --> Rave

Pour transferer et afficher des Images au format jpg, il faut avoir la vertion de rave complète ou la dernière mise a jour pour delphi 7 (et pas celle d'origine)(maj possible depuis site de borland).
Ensuite il vous faudra télécharger un composant 'JPEG Component' http://www.nevrona.com/rave/addons.shtml
Suivez les instructions du readme pour l'install.

Vous pouvez l'utiliser comme le composant bmp d'origine de rave mais pour des jpg.

Pour transferer des photos depuis Delphi (sans passer par une base de données, suivez mon exemple donné précédemment, conservez les Blob etc.. et remplacez dtString pat dtgraphic.

Allez pour ceux qui seraient un peu perdus voici un exemple de mon code.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
procedure TFEdition.RvCustomConnection2GetCols(
  Connection: TRvCustomConnection);
begin
Connection.DoGetCols;
Connection.WriteField('Logo',dtGraphic,30,'','');
Connection.WriteField('Photo1',dtGraphic,30,'','');
Connection.WriteField('Photo2',dtGraphic,30,'','');
Connection.WriteField('Photo3',dtGraphic,30,'','');
Connection.WriteField('Photo4',dtGraphic,30,'','');
end;
 
procedure TFEdition.RvCustomConnection2GetRow(
  Connection: TRvCustomConnection);
  var Stream : TMemoryStream;
begin
Connection.DoGetRow;
Connection.WriteStrData('','dummy');
Stream := TMemoryStream.CREATE;
Stream.LoadFromFile(ExtractFilePath(Application.exeName) + 'Logo.jpg');
Stream.Position := 0;
Connection.WriteBlobData(stream.memory^,stream.Size);
Stream := TMemoryStream.CREATE;
Stream.LoadFromFile(ExtractFilePath(Application.exeName) + 'temp\temp0.jpg');
Stream.Position := 0;
Connection.WriteBlobData(stream.memory^,stream.Size);
Stream.Free;
Stream := TMemoryStream.CREATE;
Stream.LoadFromFile(ExtractFilePath(Application.exeName) + 'temp\temp1.jpg');
Stream.Position := 0;
Connection.WriteBlobData(stream.memory^,stream.Size);
Stream.Free;
Stream := TMemoryStream.CREATE;
Stream.LoadFromFile(ExtractFilePath(Application.exeName) + 'temp\temp2.jpg');
Stream.Position := 0;
Connection.WriteBlobData(stream.memory^,stream.Size);
Stream.Free;
Stream := TMemoryStream.CREATE;
Stream.LoadFromFile(ExtractFilePath(Application.exeName) + 'temp\temp3.jpg');
Stream.Position := 0;
Connection.WriteBlobData(stream.memory^,stream.Size);
Stream.Free;
 
 
end;
A bientôt
Harry est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2003, 11h36   #8
Invité régulier
 
Inscription : novembre 2002
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2002
Messages : 8
Points : 6
Points : 6
Ok, J'ai tout compris !

Mais comment fais-tu pour changer la taille du "composant image" dans l'état Rave à l'execution ?
Mon objectif c'est d'afficher des Jpg (en tenant compte de la taille réelle de l'image).
El blérot est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h56.


 
 
 
 
Partenaires

Hébergement Web