# Logiciels > Solutions d'entreprise > Business Intelligence > SAP Crystal Reports >  [CR7] Insrer une image dynamiquement

## yoloosis

Bonjour  tous !
J'ai cherch partout... J'ai traqu, j'ai furet, j'ai consult les moindres arcanes du web... Rien ! Il me reste les forums, en esprant qu'un gourou du CR puisse sauver mon me avant que je ne la vende au diable...  ::twisted::  
Beaucoup de personnes semblent avoir le mme problme que moi, mais peu ont appremment la rponse !
J'ai une table (Hetype) qui contient la description de chaque produit (Hetype.Description) et un n diffrent (Hetype.Type) pour chaque produit.
Exemple :
Guitare 372
Basse 4
Ampli 98

Chaque produit a en outre une photo qui lui correspond dans un dossier spcial. Toute ces photos sont de la forme "pic" + ToText({Hetype.Type,0}) + ".jpg"
Exemple :
photo de guitare = pic372.jpg
photo de basse = pic4.jpg
photo d'ampli = pic98.jpg

Dans l'optique de faire un catalogue, je voudrais dans un rapport afficher la description d'un produit et son image. Oui mais voil, je sais pas comment faire ! De plus, il n'est pas envisageable de passer l'image dans une base de donne sous forme de Blob ou d'OLE.
J'ai entendu dire qu'on pouvait le faire en VB... Une ide ?
J'arrive  le faire avec un Etat d'Access, mais bon, a serait beaucoup plus pratique pour moi si c'tait fait avec CR !
Pour ceux que a intresse, mon rapport sera lanc  partir d'un logiciel appel HireTrack !
Voil voil !
Merci de vos rponse (pensez  mon me ! )
yoloosis  ::wink::

----------


## nabil

Bon cher ami moi aussi j'en le mme problme mais j'ai trouv une solution que je n'ai pas encore tester.tu peux jeter un coup d'oeil sur ce lien:
http://<br />
http://www.developpez...ighlight=image
j'espre que ca t'aidera .si ca marchera dis le moi.

----------


## yoloosis

J'ssaie tout de suite et je te dis quoi !
Merci de la rponse !
J'ai pas mal cherch sur le web : on est beaucoup avec le mme problme, mais ni Seagate ni Microsoft avec VB ne sembles proposer de solutions efficaces...

----------


## yoloosis

Bon, ben, a va pas trop m'aider, vu que je n'ai pas C++-Builder. En fait, je n'ai que Visual Basic Editor, fourni avec office. Je ne sais pas si a peut suffire pour programmer en VBA d'autres applications... NOTE : je suis nophyte dans la prog windows !
yoloosis

----------


## nabil

bon j'ai pas saisie la solution dans le lien que j'ai prcis alors y-a-t-il quelqu'un qui a une solution plus clair ou peu plus clair  ::oops::   ::oops::

----------


## sur_uix

C'est pourtant on ne peut plus claire. Moi je l'ai fait en Delphi ce que vous demand.

Il faut encore savoir que cette solution ne fonctionne pas dans l'apperu de CrystalReport vu qu'il y a du code VB. IL faut absolument avoir un exe (En VB Delphi C++Builder....) pour faire l'apru de ce rapport.

Alors dans l'ordre :
1. Placer un objet OLE, appel Picture1, dans un section, appel Section3.

Ca c'est pour la partie cration du rapport, maintenant il faut faire une application windows qui vas utiliser crystal (CRAXDRT.DLL).

2. Traper l'vnement Format de la Section3 du rapport. Mais l je ne peux pas vous en dire plus cela dpend du language de programmation que vous utiliser.

3. Et dans l'vnement Format, modifier l'objet Picture avec l'image qui se trouve sur votre disque. Dans l'exemple :
Set Picture1.FormattedPicture = LoadPicture(Field3.Value)

Field3 pourait tre un FormulaField qui retourne 
"pic" + ToText({Hetype.Type,0}) + ".jpg" 

Je vois pas ou a peux coinc.
Poss des questions plus prcises.

Bonne chance   ::wink::

----------


## Djob

Salut,
j'ai vu que tu as reussi  exploiter ce code en Delphi...

J'utilise Crystal CR9...
et le composant VCL pour Delphi en version 8.5.0.9

J'ai pris Le composant TCrpe sous Delphi,...et charg le rapport en mettant  jour la proprit reportName...et l ..
J'arrive pas  voir comment acceder :
  -  l'objet Picture1 lui meme  ( je ne trouve que des proprits du type OleObjects)

  -  l'objet Section3
  - ni  "Trapper"  l'vnement de cette derniere section (est-ce dans l'inspecteur d'objet Delphi?)
   - je ne trouve aucune indication dans l'aide du composant  Delphi VCL, concernant une propriete "FormattedPicture" 
   - ni rien concernant une fonction LoadPicture ou equivalent ? ....

...pourrais tu donner quelques prcisions sur ton implementation sous Delphi de ce code VB...?

( si j'arrive  le comprendre , je le traduirai en C++ Builder pour les autres ).

Merci d'avance pour ta rponse.
Djob.

----------


## sur_uix

Alors tu n'arive tout simplement pas  utiliser ce code sous Delphi car tu utilise le mauvais moteur Crystal.

Le composant VCL de crystal utilise la CRPE32 alors que le code que je vous ai fournit utilise la CRAXDRT appel aussi RDC.

Pour utiliser le RDC sous Delphi il faut l'importer (Le RDC n'est rien d'autre que des objets COM)

Pour ajouter le viewer : Component -> Import ActiveX control.... et la tu prend Crystal Report Viewer Control qui te donnera un TCRViewer.

Pour ajouter le moteur : Projet -> Import Type Library... et la tu prend Crystal Report ActiveX Designer Run Time Library qui te donnera entre autre un TApplication et un TReport.
Je te conseil de modifier le nom de toutes les classes P.Ex. TApplication en TCRApplication. Sinon certain classe du RDC seront en confli avec d'autre dj existante dans Delphi.

Aprs cela tu aura deux nouveaux fichiers CRVIEWERLib_TLB.pas et CRAXDRT_TLB.pas.

Vas faire un tour dans CRAXDRT_TLB.pas cherche l'interface ISectionEvent et hoooooooooooooooo comme c'est joli justement notre petit vnement  format().
Et pour finir on vas cherche notre objet OLE du rapport -> ICROleObject et l merveilleux il contient un proprit FormattedPicture.
Comme c'est beau l'informatique quand a marche.

Voila je pense qu'avec a il y a de quoi faire. La suite bien videment apprendre  utiliser ce fameux RDC. Mais bon je vais attendre vos questions.

Bonne chance   ::wink::

----------


## Djob

Je me disais aussi ... ::oops::  

Merci beaucoup  toi pour ces prcisions et pour ta prcieuse contribution... 

Djob.

----------


## sur_uix

Ya pas de quoi,
D'ailleur on pourrai faire un postIt qui explique comment utiliser le RDC dans Delphi.

----------


## Djob

L'installation du RDC sous Delphi marche nickel ,

je vois  peu pres comment recuperer les objects de la section detail d mon rapport




```

```

mais je ne vois pas comment implementer l'evenement ISectionEvent en Delphi ...



Quelqu'un peut il m'aider ?

----------


## Djob

J'ai install l'environnement VB 
pour tester l'exemple en VB ( Load picture at Runtime) de chez crystal 
(http://support.crystaldecisions.com/...s/apps_rdc.pdf)

Apparemment il y a un Designer Graphique (ICRDesigner)  , 
il suffit de cliquer sur la bande 'Section 3 ' et on atterrit dans le code de l'evnement Section3_Format
Sous delphi , il ya des exemples ,
(http://support.crystaldecisions.com/...pps_delphi.pdf), 
...mais rien qui montre comment acceder  l'vnement de la section ...-((

----------


## sur_uix

Vas voir par l 
http://www.developpez.net/forums/vie...=538199#538199

----------

