|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éprouvé
![]() ![]() Inscription : mai 2002 Messages : 377 ![]() |
1er Partie importer le RDC en temps que composant VCL
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 entre autre deux nouveaux fichiers CRVIEWERLib_TLB.pas et CRAXDRT_TLB.pas. Je te conseil d'aller te ballader un peux dedans pour voir de quoi il en retourne. |
|
|
00
|
|
|
#2 | ||
|
Membre éprouvé
![]() ![]() Inscription : mai 2002 Messages : 377 ![]() |
2e Première utilisation.
Pour pouvoir fair un apérçu avec le RDC il nous faut au minimum 3 classes. TCRviewer - Pour l'apérçu, TCRReport - contient le rapport et TCRApplication - pour charger le raport. Créer un projet Delphi vide avec une feuille FORM1 TCRViewer est c'est un composant visuel, on peut alors le placer sur FORM1 comme n'importe quel autre composant Delphi (DragAndDrop) ON ajoute encore un bouton (Button1) avec une méthode sur l'évement onClick. Maintenant voici comment on affiche un rapport : On l'ouvre -> crReport := crApplication.OpenReport(FileName, crOpenReportByTempCopy); On dit au viewer quel rapport il doit afficher -> crViewer91.ReportSource := crReport; Et on affiche le rapport -> crViewer91.ViewReport; Et voilà c'est fini. Ceci donne le code suivant Code :
|
||
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() Inscription : août 2002 Messages : 215 ![]() |
Salut,
Merci pour ce topic , J'ai essayé de compiler , J'ai tout d'abord eu une erreur sur CreateOLEObject (identificateur non déclaré), j'ai rajouté l'unité ComObj dans les uses puis après l'erreur : Types incompatibles : 'TCrApplication' et 'IApplication' que dois faire ? |
|
|
00
|
|
|
#4 |
|
Membre éprouvé
![]() ![]() Inscription : mai 2002 Messages : 377 ![]() |
C'est bizzard que tu ai ce message. TCRApplication et le wrappeur et IApplication ll'interface COM.
Sur quel ligne tu as l'erreur. Est-ce que par hazard tu à changé ceci en ceci Parce que cette exemple travaile directement sur l'interface. |
|
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Inscription : août 2002 Messages : 215 ![]() |
C'est en effet une erreur de ma part ,...
J' ai posé les composants TCrApplication et TCrReport sur ma fiche au lieu d'ajouter un IApplication et un IReport ... Merci bcp sur_uix. Djob. |
|
|
00
|
|
|
#6 | ||||||||||||
|
Membre éprouvé
![]() ![]() Inscription : mai 2002 Messages : 377 ![]() |
Ensuite beaucoup de demande on été faite pour pouvoir lier une image dynamiquement.
http://www.developpez.net/forums/viewtopic.php?t=102168 http://www.developpez.net/forums/viewtopic.php?t=66466 Pour cela Crystal nous propose quelque chose mais en VB : Code :
IL faut : 1. Placer un objet OLE, appelé Picture1, dans un section, appelé Section3. 2. Traper l'événement Format de la Section du rapport. 3. Et dans l'événement Format, modifier l'objet Picture avec l'image qui se trouve sur votre disque. Par exemple : Code :
Il faut faire un wrappeur pour ces deux interface. Voici ce que je vous propose : Pour l'en-tête Code :
Code :
Vous ajouter cela dans le fichier CRAXDRT_TLB.pas Maintenat vous avez une classe TCrSection qui ce connecte sur n'importe quel section du rapport et vous propose l'événement OnFormat(...) Pour l'utiliser c'est simple : Code :
Code :
Bonne chance |
||||||||||||
|
|
00
|
|
|
#7 |
|
Membre confirmé
![]() Inscription : août 2002 Messages : 215 ![]() |
ça marche vraiment très bien... !!! Y
et encore : x1000(J'avais écumé sans succès, les forums pour trouver cette solution ..) Maintenant, je vais essayer d'adapter cete solution sous C++ Builder.. ( j'en ai besoin pour utiliser le toolkit C++ de Lotus... Il semblerait que l 'installation du RDC sous Builder avec cette meme procedure pose quelques problemes de compilation chez moi...(erreurs dans le code généré, mais ça provient peut être de mon environnement ...) et encore MERCI sur_uix ! |
|
|
00
|
|
|
#8 | ||||||
|
Membre éprouvé
![]() ![]() Inscription : mai 2002 Messages : 377 ![]() |
Y a pas de quoi
Il y a encore un point sur lequel il faut être prudent, c'est la libération des interfaces. N'oublié pas de détruire correctement tout vos objects Crystal. Si vous travaillé directement sur l'interface faite Code :
Code :
Code :
Donc prudence. Voilà |
||||||
|
|
00
|
|
|
#9 |
|
Membre éprouvé
![]() ![]() Inscription : mai 2002 Messages : 377 ![]() |
Hello tout le monde il y aura bientôt un FAQ de ce topic dans la FAQ de Delphi.
|
|
|
00
|
|
|
#10 |
|
Invité régulier
![]() Inscription : septembre 2005 Messages : 39 ![]() |
kikoo je suis en VB.Net et je voi pas dutous ou je peu implementer du code dans le crystal report
je n'ai acces qu'a : CrystalReport1.rpt ou a CrystalReport1.vb(lorsque je fait afficher tous les fichiers) dans le second ya du code mais je ne voi pas ou je peu implementer koi que ce soit qu'elle qu'un peu m aider avec VB.Net ?? je ne voi pas ou je peu choper : CRAXDRT_TLB.pas. |
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : décembre 2005 Messages : 37 ![]() |
bonjour à tous j'ai essayé la procédure citée tout en haut pour lancer un état crée sous crystal reports 11 mais j'arrive pas à trouver les ActiveX que tu as cité tu peux bien m'expliquer si tu le permettais et merci.
|
|
|
00
|
|
|
#12 | |||||||||||||||
|
Invité de passage
![]() Patrick Parijs Inscription : décembre 2009 Messages : 1 ![]() |
Bonjour à tous,
J'ai lu avec beaucoup d'intéret l'article de sur_uix concernant la méthode pour pouvoir lier une image dynamiquement en Crystal Reports avec le RDC. Je suis en train d'adapter cette méthode avec Crystal Reports 8.0 et Delphi 2007. J'ai fait tous qui est nécessaire (installation de CRViewerlib_tlb.pas et CRAXDRT_tlb.pas), mais le problème c'est que l' événement Format ("Onformat") ne se produit pas ?! Je pense que l' événement se produit dès qu'on commence avec l' affichage du rapport (CRViewer.Viewreport) ? La procédure qui serra appelé par l' événement "OnFormat", je l'ai declaré comme : Code :
procedure TForm1.FormatDetailSection4(Sender : TObject ; const pFormattingInfo: IDispatch); Code :
Merçi en avance pour m'aider ... Citation:
|
|||||||||||||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com