Développement Java application EE avec dynamicReports Et jusqu'à présent, c'est suffisant pour moi. Récemment j'ai trouvé dynamicjasper et j'aimerais savoir si cela pourrait être meilleur choix.
Je peux voir que dynamicReports peut avoir mieux support et communauté.
Merci!
Cette question touche quelques façons de créer des rapports à l'aide de l'API JasperReports (directement ou indirectement):
DynamicReports (DR) et DynamicJasper (DJ) sont deux outils logiciels libres et open-source qui résument (et simplifiez) les tâches communes avec l'API JASPERREPTES. Si vous envisagez de développer des rapports de manière programmatique, ces outils peuvent réduire le temps de développement.
Les packages API DR et DJ ont les caractéristiques suivantes en commun:
iREPORT est une interface utilisateur qui masque la complexité d'appeler des méthodes de jasperReports directement. En d'autres termes, IREPORT est une façon fantaisie et plus amicale de développer des rapports que codage Java appels manuellement. Le résultat final est le même: un fichier de rapport compilé (.jasper).
L'API JasperReports fournit des programmeurs avec un ensemble de Java classes pour créer un ordinateur Créer des rapports basés sur des besoins professionnels. L'API permet, par exemple, développer un site Web qui permet aux utilisateurs de choisir Les colonnes qu'ils souhaitent dans un rapport puis que le modèle de rapport soit créé à la volée. Une fois que le modèle est prêt, un utilisateur peut ensuite exécuter le rapport pour voir les résultats.
Une caractéristique que l'IRPORT manque est la possibilité de redimensionner de manière dynamique les largeurs de colonne. En utilisant directement l'API JasperReports directement, les programmeurs peuvent créer un modèle de rapport avec la largeur de colonne optimale pour le jeu de résultats du rapport.
Le problème est que l'API JasperReports est extrêmement complexe et que certaines parties pourraient utiliser plus de documentation.
Le site Web DynamicJasper note les suivants : avantages sur l'API JasperReports:
Les exemples d'API montrent un bon fonctionnement de principes orientés objet. Le site Web offre de nombreux exemples et les Javadocs sont peu commentés. Le forum est plus actif que dynamicReports.
Mise à jour: Le projet est maintenant sur GitHub . Pas plus de forum, mais vous pouvez demander un support professionnel
Le site Web DynamicReports prend note des points suivants avantages sur l'API JasperReports:
Le site Web offre de nombreux exemples, mais malheureusement, les Javadocs n'ont pas beaucoup de commentaires. En outre, le forum semble moins actif que JasperReports ou DynamicJasper.
Si vous êtes heureux avec DynamicReports, je dirais que vous allez vous contacter, sinon, essayez dynamicjasper.
Je viens de passer quelques jours à utiliser et à évaluer les différentes options de reporting ci-dessus et je pensais que j'ajouterais mes 2 cents dans le mélange. J'ai construit le même rapport (profit et perte) dans JRXML, Jasper dynamique et des rapports dynamiques. J'avais besoin d'une solution qui produirait bien dans les deux PDF et des formats Excel et avaient la capacité de gérer des colonnes dynamiques.
Voici ce que j'ai trouvé:
JRXML
Trouvé très fastidieux à utiliser avec et sans utiliser IRPORT. J'ai déjà eu de l'expérience avec JRXML auparavant et j'ai toujours trouvé une vraie bataille pour que le rapport soit affiché correctement dans les deux PDF et Excel. Je devais utiliser beaucoup de solution de contournement en caché et en affichant Certains champs basés sur si cela allait être PDF ou Excel. Les colonnes dynamiques ne sont pas bien gérées.
Jasper dynamique
Au début, je trouvais dynamique Jasper plutôt bon à travailler, mais j'ai eu des problèmes d'avoir un contrôle absolu sur la mise en page et de mettre des contrôles supplémentaires sur le rapport. Il semble que si votre rapport soit basé sur une colonne qu'elle ne fonctionne bien. Je ne pouvais pas savoir comment ajouter un sous-rapport à la section de détail et devait l'ajouter à l'en-tête de groupe ou au pied de page.
Rapports dynamiques
À mon avis, les rapports dynamiques sont le moyen le plus flexible et le plus simple de créer des rapports de Jasper dynamiques. La syntaxe est facile et intuitive et j'ai trouvé qu'il est très rapide de se lever et de courir. Vous effectuez un rapport basé sur des colonnes comme Dynamic Jasper, mais également les options pour supprimer le détroit des composants sur le titre, le détail ou d'autres domaines du rapport. Il utilise une mise en page de flux afin que vous déposiez des composants dans le rapport et l'affichage dans cet ordre. Exporter vers les deux PDF et Excel était cohérent.
Le dernier avantage important des rapports dynamiques est l'activité de support et de mise à jour. DynamicJasper n'a pas eu d'activité de forum ni de soutien dans une période bien supérieure à une demi-année, tandis que DynamicReports n'est pas seulement mis à jour activement, mais également le développeur (Ricardo Mariaca) surveille activement le forum et réagit rapidement aux questions.
Je suis un grand fan de dynamicjasper mais je suis récemment passé à DynamicReports 4.0.1 (à l'époque, la dernière version dynamicjasper est 5.0.3). Avec une grande meilleure API en termes de lisibilité et de convivialité, DynamicReports offre beaucoup plus de flexibilité pour concevoir des rapports sur la volée. Il existe également de nombreux échantillons sur son site Web qui favorisent de nouvelles idées et des tutoriels qui vous aident à commencer rapidement. Ceci link est un bon point de départ aussi.
Le seul problème que j'avais commencé à utiliser dynamicReports était qu'avec JasperReports et DynamicJasper, j'ai été utilisé pour créer d'abord le JasperReport d'abord (conception), puis transmettez l'objet JasperReport avec une source de données à JasperfillMeraver.FillReport (...) pour créer le Objet jasperprint. Avec JasperPrint, la seule chose est de définir la source de données avant de créer le JasperPrint par rapport (). Tojasperprint () méthode. Vous pouvez rechercher des utilisations d'un constructeur de composants ou de tout utilitaire dans son code source pour voir comment utiliser une fonctionnalité spéciale.