2008-10-17 6 views
2

Je transfère une application de Crystal Reports 8 vers Crystal Reports XI dans Delphi 5 à l'aide de l'interface RDC/ActiveX.Aperçu de rapport autonome via RDC/ActiveX Crystal Reports XI

Dans Crystal Reports 8, j'ai pu faire apparaître les rapports de cristal fenêtre de la visionneuse de rapports par défaut pour un rapport comme ceci:

RptInvoicing.Destination := 0; // To: window 
RptInvoicing.Action := 1; // Execute 

Cependant, cela ne vole pas avec CR XI. L'impression et l'exportation que j'ai compris à travailler comme ceci:

crReport.PrintOut(True); 
... 
crReport.Export(True); 

Mais je n'ai pas pu trouver quoi que ce soit pertinent pour afficher la fenêtre d'aperçu par défaut. J'ai essayé d'implémenter le mien en utilisant le composant de visionneuse de rapports, mais il a beaucoup de problèmes comme le blocage lors du redimensionnement, du gel et des plantages, donc ce n'est pas une solution viable pour une application de production.

Même les forums de support officiels ne m'ont pas aidé, j'ai seulement eu une mauvaise réponse pour aller voir les manuels, que j'ai vus plusieurs fois et que je ne peux que qualifier de mauvais. Ce n'est pas tous les jours que vous voyez une telle mauvaise documentation pour un produit d'entreprise. Je n'ai trouvé rien de pertinent à cela dans leurs manuels, alors je suis amené à penser que leur propre personnel n'a aucune idée à ce sujet non plus.

J'espère donc que quelqu'un ici pourrait me dire si la visionneuse de rapports par défaut existe toujours dans CR XI, et si oui, comment l'invoquer? Si ce n'est pas le cas, l'utilisation du composant concepteur de rapports est-elle vraiment la seule solution pour en créer un?

Répondre

0

Je ne peux rien dire à propos de Delphi, mais dans VB, nous utilisons CRViewer ActiveX Control. L'utiliser est simple - vous placez le contrôle de la visionneuse sur le formulaire et lui assignez un objet RDC. Ceci est couvert dans l'aide de CR quelque part. (Je ne peux pas regarder ATM de code pour fournir exmples travail.)

+0

Oui, j'ai essayé d'utiliser le composant, mais je le trouve à la fois instable et lent! – anon6439

+0

et maintenant obsolète, et non fonctionnel depuis SP3. –

1

De leur documentation:

craxddrt.dll (Crystal Reports ActiveX Design Designer et Runtime Library) est un modèle d'objet unifié combine les capacités d'exécution de Craxdrt.dll (Crystal Reports ActiveX designer Run Time Library) avec les capacités de temps de conception de l' Craxddt.dll (Crystal Reports ActiveX designer la librairie Time). Craxddrt.dll remplacera Craxddt.dll pour les versions 8.5 et plus. Tant le craxddrt.dll et Craxdrt.dll contiennent tous les objets et associés méthodes, les propriétés et les événements nécessaires pour la création, l'ouverture, l'exportation, l'économie , et l'impression d'un rapport à l'exécution temps. En outre, Craxddrt.dll est soit utilisé avec le Concepteur RDC ActiveX lors de la conception des rapports au temps de conception, ou utilisé avec le Concepteur lors de la conception des rapports lors de l'exécution. Voir «Intégrable Crystal Reports Designer Control Object Model» à la page 343 pour plus d'informations sur .

Note: Le RDC ActiveX Designer est disponible uniquement dans Microsoft Visual Basic.

Avant la version 8.5, le Craxdrt.dll serait distribué avec une application. Maintenant, le développeur a le choix entre deux serveurs d'automatisation à distribuer. Craxdrt.dll est rétrocompatible avec les versions précédentes et contient toutes les fonctionnalités introduites dans cette version . Utilisez le Craxdrt.dll pour toute application côté client qui ne contient pas le Designer incorporable, ou l'utiliser pour toute application côté serveur . Craxddrt.dll est appartement-modèle fileté, mais n'est pas thread sûr, et ne peut être utilisé dans une application côté client . Bien que le Craxddrt.dll est un serveur d'automatisation entièrement fonctionnel pour le RDC, et peut fonctionner dans n'importe quelle application côté client, il augmentera la taille d'installation. Par conséquent, il est recommandé que vous utilisez uniquement Craxddrt.dll avec le contrôle Embdesable Crystal Reports Designer .

+0

Récemment, il semble que "CRAXDDRT" est non fonctionnel depuis la sortie du Service Pack 3. Le niveau de produit actuel est CR XI SP4, et apparemment seul le concepteur .NET est disponible, et ce n'est plus fonctionnel. Quelqu'un peut-il confirmer cela? source: http://scn.sap.com/thread/1623353 –

2

J'ai récemment eu le même problème, et described the solution here. J'utilise Delphi 2007, mais puisque le code implique des appels à une DLL ActiveX externe, il devrait fonctionner pour vous aussi.