84 votes

Comparer SQL Server Reporting Services à Crystal Reports

Lequel des Crystal Reports y SSRS (SQL Server Reporting Services) est le mieux à utiliser ?

141voto

Peter Wone Points 7672

D'une part, Crystal Reports est un tas de caca d'âne coûteux et surestimé et, d'autre part, SSRS remplit toutes les promesses du marketing de Crystal Reports - et il est gratuit.

Mon mépris pour le CR provient des nombreuses années où j'ai été obligé d'utiliser cette horrible chose. Il n'y a vraiment pas de raison de détailler l'odieux de CR quand je peux vous donner des références comme Clubbing the Crystal Dodo o Crystal Reports est nul, Donkey Dork (pas aussi drôle mais plutôt plus littéraire et étayé de détails techniques).

Gratuit ? ! Oui. Vous n'avez même pas besoin d'acheter MS SQL Server pour l'obtenir - vous pouvez installer SQL Express avec Advanced Services. Ceci est disponible en tant que téléchargement qui inclut SQL Server Reporting Services . Bien que SQL Express soit limité dans le nombre d'utilisateurs simultanés qu'il peut prendre en charge, les observations suivantes sont saillantes :

  • La licence pour SSRS obtenue dans le cadre de dans le cadre de SQL Express exige seulement qu'elle soit déployée dans le cadre de SQL Express. Rien n'interdit de connexion à d'autres sources de données ou d'exiger qu'un rapport obtienne des données à partir de SQL Server.

  • La version de SSRS mentionnée ci-dessus n'a aucune restriction intrinsèque sur les connexions des utilisateurs. Toutes les limitations sont imposées à l'engin de base de données de la base de données.

  • SSRS utilise ADO.NET, qui comprend, des pilotes pour Oracle, Jet (Access), OLEDB et ODBC.

Ainsi, vous pouvez connecter la version gratuite de SSRS à tout back-end auquel vous pouvez connecter ADO.NET, ce qui inclut (par exemple) MySQL. Rory me dit dans un commentaire ci-dessous que cela n'est "pas pris en charge". C'est vrai, mais je ne trouve rien dans la licence qui l'interdise et, bien que les pilotes ne soient pas fournis, il n'est pas possible de les utiliser. par SSExpress ils ont certainement sont fournis par la plupart des versions de Visual Studio et vous pouvez les expédier dans votre kit d'installation. Il ne s'agit peut-être pas d'une configuration expressément prise en charge, mais qu'importe ? Même si vous disposiez d'une licence MSSQL complète, il serait un peu exagéré d'attendre de Microsoft qu'il vous aide à communiquer avec une base de données tierce (pour ne pas dire un peu bizarre).

J'utilise SSRS de manière intensive au travail, tant pour les rapports internes que pour les rapports externes intégrés dans des applications ASP.NET qui fournissent des services de bureau à un grand nombre de clients payants. Dans notre cas, il se trouve que le magasin de sauvegarde est une copie sous licence de Microsoft SQL Server 2008, mais cela n'a rien à voir avec les mérites techniques de notre solution de reporting.

Il existe une longue liste de fonctionnalités que Crystal Reports prétend prendre en charge, mais qui soit ne fonctionnent pas, soit nécessitent une licence d'un prix exorbitant si vous voulez plus de cinq utilisateurs. Vous ne pouvez même pas faire confiance à CR pour gérer correctement SQL. SELECT COUNT(*) FROM SOMETABLE WHERE 1=0 devrait produire un résultat de zéro mais il produit un . Le moteur de requête intégré est défectueux, et une équipe qui bousille quelque chose qu'un groupe d'amateurs peut faire gratuitement (par exemple MySQL) n'a aucun espoir d'obtenir quelque chose que vous décririez comme des performances de leur code.

Et ils ne le font pas. Cette chose maléfique fait fuir la mémoire comme un seau sans fond, et si vous utilisez des outils de profilage SQL, vous constaterez que c'est spectaculairement inefficace.

En ce qui concerne le prétendu support, je peux personnellement attester que les bugs de redimensionnement des boîtes de dialogue n'ont pas été corrigés depuis décennies après qu'ils aient été documentés publiquement. Si vous sortez votre carte de crédit et payez les rançons extorquées demandées (moi aussi je voudrais payer pour soutenir une telle horreur), vous vous retrouverez à parler à quelqu'un qui prétend s'appeler David, mais prononce inexplicablement "Dah-feet", et qui ne comprend même pas votre question, et a encore moins une réponse.

La situation du support SSRS est assez similaire, mais il fonctionne réellement, de sorte que vous n'avez pas vraiment besoin de beaucoup.

SSRS, en revanche, fait tout ce que CR prétend faire. Il n'est pas exempt de bogues, mais ils sont heureusement peu nombreux et survivent rarement à plus d'un cycle de publication.

L'interface utilisateur du concepteur SSRS est hébergée dans l'IDE Visual Studio. Elle est présentée de manière attrayante, dans le style typique de Microsoft, mais elle est surtout très bien conçue, intégrant plusieurs différences simples mais fondamentales par rapport aux concepteurs de rapports traditionnels. Par exemple, pour présenter des données sous forme de tableaux, vous définissez un tableau plutôt que de manipuler des zones de texte individuelles. Ainsi, il n'est pas nécessaire d'essayer de les aligner et l'ajout de bordures est un exercice trivial de feuille de style.

SSRS fait réellement tout ce que CR prétend faire, il est peu coûteux, il existe une documentation technique complète et fiable, il est conçu pour être étendu (également documenté) et vous pouvez le connecter à tout ce pour quoi vous pouvez obtenir un pilote ODBC. C'est une évidence.

Quelques faiblesses de SSRS

  • Il n'est pas évident de lier les champs dans les en-têtes et les pieds de page.
  • Il n'est pas possible (pour autant que je sache) de se positionner par rapport au bas de la page. Il s'agit d'un véritable problème pour certains types de rapports, pour lequel je ne vois pas de solution de contournement.
  • Il n'y a pas de support pour les rollups horizontaux expansifs dans les tableaux croisés.
  • Il n'y a pas de prise en charge directe des en-têtes et des pieds de page des rapports. Utilisez des objets Rectangle en haut et en bas de la mise en page du rapport, avec des propriétés de saut de page définies de manière appropriée. Ou utilisez des sous-rapports. Les personnes qui se plaignent de cela n'ont manifestement pas fait beaucoup d'efforts.
  • Absence de prise en charge des intervalles de groupe qui se chevauchent (le système de groupement CR peut le faire). UPDATE SSRS 2008 R2 prend désormais en charge cette fonctionnalité. Elle est cachée dans la boîte de dialogue d'édition du regroupement. Recherchez "variables de groupe" et lisez ceci .

En fait, il semble que le chevauchement des groupes soit également possible avec SSRS2005, mais je ne le savais pas. Je me demande si quelqu'un a résolu le problème du positionnement relatif au bas de l'écran.

20voto

J'ai utilisé Crystal report jusqu'à la version 10 et j'ai toujours réussi à faire ce que je voulais avec les applications ASP.NET. Sa sortie sur le web est vraiment bonne comme WYSIWYG et les exportations vers Excel et PDF sont également précises. L'impression est également merveilleusement correcte.

Récemment, j'ai travaillé sur SSRS 2005 pendant environ un an et j'ai été témoin de tant de lacunes qui auraient dû être fournies dans la boîte à outils. La sortie web de SSRS varie grandement avec différents navigateurs et différentes résolutions et rendrait facilement malade un développeur. De plus, les problèmes de défilement de la visionneuse de rapports rendraient l'utilisateur final fou assez tôt, car elle est basée sur le HTML et utilise un IFRAME (). Note : Crystal 13 utilise un IFRAME dans la visionneuse web qui souffre de problèmes sporadiques d'enveloppement du texte et de chevauchement. ). Les exportations ne sont pas bonnes du tout. Vous ne pouvez pas aligner les images à gauche ou au centre des cellules et vous ne pouvez pas spécifier les couleurs de fond des images. Vous ne pouvez pas centrer le corps complet du rapport. Pour la possibilité, j'ai joué avec le HTML rendu pendant des heures et j'ai trouvé des remplacements exacts pour que cela fonctionne, mais ces corrections simples n'étaient pas connues des développeurs SSRS, je suppose parce que probablement, ils n'ont jamais utilisé SSRS pour eux-mêmes.

En outre, dans les applications web, vous devez supporter la mauvaise interface utilisateur pour les paramètres prêts à l'emploi. Je l'ai simplement supprimé complètement et le coût de sa création dans les pages ASPX m'a fait penser à concevoir des rapports tabulaires dans des DataGrids en utilisant plutôt ObjectDataSource et la technique de pagination de la base de données. Vous ne pouvez pas disposer les paramètres selon vos besoins. Les bogues dans les sections de paramètres renvoient des rapports complets sans aucune modification. La pagination avec regroupement fonctionne avec une astuce, mais le tri échoue sur l'ensemble des données. Pour chaque exigence de niveau moyen à avancé en matière d'interface utilisateur, SSRS prend tellement de temps à comprendre que c'est tout simplement impossible. Comme il y a peu d'utilisateurs de SSRS, la communauté en ligne n'a pas de bonnes solutions pour les problèmes simples. Sans oublier que le bon côté de SSRS est son déploiement, les notifications intégrées, la mise en cache et la configuration, mais pas d'interface utilisateur pour gagner.

L'essentiel est que j'ai vu SSRS vous frustrer simplement à cause de la non-réactivité de l'équipe de support de Microsoft lorsqu'ils doivent dire "désolé ! pas maintenant" après un mois. La plupart de ces problèmes ne sont pas résolus immédiatement dans SSRS 2008. En outre, le passage à SSRS 2008 implique également une migration complète des plates-formes dorsales. Si l'on garde à l'esprit que plus vous utilisez un logiciel, plus il devient mature au fil du temps, Crystal est de toute façon un bien meilleur choix, car SSRS accumule rapidement les coûts de correction de ses bogues par vous-même.

15voto

Jim Points 4057

Vous pouvez déployer une application en utilisant Reporting Services en incluant 3 fichiers DLL. C'est un avantage considérable. (Remarque : vous devez obtenir l'un des 3 fichiers DLL à partir du GAC).

Avec Crystal Reports, vous devez installer le runtime sur chaque machine qui exécutera l'application (site Web ou application client).

Reporting Services possède toutes les fonctionnalités dont la plupart des gens ont besoin, et le déploiement est BEAUCOUP plus facile. Je n'utiliserai jamais Crystal Reports à moins d'y être contraint.

15voto

John M Gant Points 6147

Puisque ce fil de discussion a été réouvert, je vais ajouter mon grain de sel. J'ai dû utiliser Crystal pendant environ trois ans, à l'époque des versions 7 et 8. J'en ai détesté chaque minute. J'ai vu un peu les nouvelles versions et je ne les aime toujours pas.

Je l'aime tellement qu'il m'est pénible de dire ceci : d'après mon expérience, Crystal est mieux adapté que SSRS pour les rapports complexes. Un collègue et moi avons essayé désespérément de faire fonctionner une mise en page de rapport modérément complexe dans SSRS et nous avons abandonné. Mon impression du produit - qui n'est qu'une opinion - est qu'il n'est pas tout à fait prêt pour le prime time.

Le cristal vous fera détester votre vie et chercher un autre emploi, mais il y a une raison pour laquelle il est si répandu : il fonctionne.

14voto

Carlton Jenke Points 2483

Reporting Services est bien meilleur, selon mon expérience. C'est un meilleur environnement, mais surtout, les connexions (sources de données) sont séparées du rapport et peuvent être partagées. Cela permet un déploiement beaucoup plus simple entre les environnements.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X