Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Crystal Reports
Crystal Reports Forum d'entraide sur Crystal Reports. Avant de poster --> FAQ Crystal, Tutoriels Crystal
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 17/07/2003, 17h25   #1
Membre à l'essai
 
Inscription : juillet 2003
Messages : 43
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 43
Points : 23
Points : 23
Par défaut [CR7] Insérer une image dynamiquement

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 espèrant qu'un gourou du CR puisse sauver mon âme avant que je ne la vende au diable...
Beaucoup de personnes semblent avoir le même problème que moi, mais peu ont appremment la réponse !
J'ai une table (Hetype) qui contient la description de chaque produit (Hetype.Description) et un n° différent (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 spécial. 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 donnée sous forme de Blob ou d'OLE.
J'ai entendu dire qu'on pouvait le faire en VB... Une idée ?
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 intéresse, mon rapport sera lancé à partir d'un logiciel appelé HireTrack !
Voilà voilà !
Merci de vos réponse (pensez à mon âme ! )
yoloosis
yoloosis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2003, 17h51   #2
Membre habitué
 
Avatar de nabil
 
Inscription : avril 2002
Messages : 215
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 215
Points : 120
Points : 120
Envoyer un message via MSN à nabil Envoyer un message via Skype™ à nabil
Bon cher ami moi aussi j'en le même problème 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'espére que ca t'aidera .si ca marchera dis le moi.
__________________
Il ne faut jamais désesperer, il y a toujours une solution.
nabil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2003, 18h21   #3
Membre à l'essai
 
Inscription : juillet 2003
Messages : 43
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 43
Points : 23
Points : 23
J'ssaie tout de suite et je te dis quoi !
Merci de la réponse !
J'ai pas mal cherché sur le web : on est beaucoup avec le même problème, mais ni Seagate ni Microsoft avec VB ne sembles proposer de solutions efficaces...
yoloosis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2003, 18h29   #4
Membre à l'essai
 
Inscription : juillet 2003
Messages : 43
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 43
Points : 23
Points : 23
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 néophyte dans la prog windows !
yoloosis
yoloosis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2003, 20h15   #5
Membre habitué
 
Avatar de nabil
 
Inscription : avril 2002
Messages : 215
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 215
Points : 120
Points : 120
Envoyer un message via MSN à nabil Envoyer un message via Skype™ à nabil
bon j'ai pas saisie la solution dans le lien que j'ai précisé alors y-a-t-il quelqu'un qui a une solution plus clair ou peu plus éclairé
__________________
Il ne faut jamais désesperer, il y a toujours une solution.
nabil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2003, 11h14   #6
Membre éprouvé
 
Avatar de sur_uix
 
Inscription : mai 2002
Messages : 377
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2002
Messages : 377
Points : 471
Points : 471
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'apperçu de CrystalReport vu qu'il y a du code VB. IL faut absolument avoir un exe (En VB Delphi C++Builder....) pour faire l'apérçu 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 création du rapport, maintenant il faut faire une application windows qui vas utiliser crystal (CRAXDRT.DLL).

2. Traper l'événement Format de la Section3 du rapport. Mais là je ne peux pas vous en dire plus cela dépend du language de programmation que vous utiliser.

3. Et dans l'événement 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 précises.

Bonne chance
sur_uix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2003, 08h13   #7
Membre confirmé
 
Avatar de Djob
 
Inscription : août 2002
Messages : 215
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 215
Points : 217
Points : 217
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 propriété reportName...et là ..
J'arrive pas à voir comment acceder :
- à l'objet Picture1 lui meme ( je ne trouve que des propriétés du type OleObjects)

- à l'objet Section3
- ni à "Trapper" l'évènement 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 précisions 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 réponse.
Djob.
Djob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2003, 10h09   #8
Membre éprouvé
 
Avatar de sur_uix
 
Inscription : mai 2002
Messages : 377
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2002
Messages : 377
Points : 471
Points : 471
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 déjà existante dans Delphi.

Après 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 événement format().
Et pour finir on vas cherche notre objet OLE du rapport -> ICROleObject et là merveilleux il contient un propriété 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
sur_uix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2003, 10h19   #9
Membre confirmé
 
Avatar de Djob
 
Inscription : août 2002
Messages : 215
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 215
Points : 217
Points : 217
Je me disais aussi ...

Merci beaucoup à toi pour ces précisions et pour ta précieuse contribution...

Djob.
Djob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2003, 10h21   #10
Membre éprouvé
 
Avatar de sur_uix
 
Inscription : mai 2002
Messages : 377
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2002
Messages : 377
Points : 471
Points : 471
Ya pas de quoi,
D'ailleur on pourrai faire un postIt qui explique comment utiliser le RDC dans Delphi.
sur_uix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2003, 12h59   #11
Membre confirmé
 
Avatar de Djob
 
Inscription : août 2002
Messages : 215
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 215
Points : 217
Points : 217
L'installation du RDC sous Delphi marche nickel ,

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


Code :
1
2
3
 
          crSection := crReport.Sections.Get_Item('DetailSection1');
          Picture1 := crSection.ReportObjects.Get_Item('Picture1') AS OleObject;
mais je ne vois pas comment implementer l'evenement ISectionEvent en Delphi ...



Quelqu'un peut il m'aider ?
Djob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2003, 01h09   #12
Membre confirmé
 
Avatar de Djob
 
Inscription : août 2002
Messages : 215
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 215
Points : 217
Points : 217
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'evènement Section3_Format
Sous delphi , il ya des exemples ,
(http://support.crystaldecisions.com/...pps_delphi.pdf),
...mais rien qui montre comment acceder à l'évènement de la section ...-((
Djob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2003, 09h54   #13
Membre éprouvé
 
Avatar de sur_uix
 
Inscription : mai 2002
Messages : 377
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2002
Messages : 377
Points : 471
Points : 471
Vas voir par là
http://www.developpez.net/forums/vie...=538199#538199
sur_uix 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 21h08.


 
 
 
 
Partenaires

Hébergement Web