Une utilisation excessive des sous-rapports peut augmenter les demandes de ressources pour un rapport. Chaque sous-rapport engendre son propre thread pendant le temps de remplissage. De plus, si vous utilisez des classes de scripts ou d'aides, assurez-vous que toutes les ressources qu'elles créent sont correctement nettoyées. Assurez-vous également que vous utilisez le dernier paquet JR.
Une note. L'API JR comprend un ensemble de virtualiseurs. Lorsque le rapport est plein, le rapport entier est créé en tant qu'objet (JasperPrint). Selon le nombre de pages dans le rapport, cet objet peut devenir assez volumineux. Les virtualiseurs peuvent être configurés pour écrire dans le système de fichiers lorsqu'un seuil de page défini a été atteint.
Généralement, cela réduit l'utilisation globale de la mémoire mais augmente le temps de remplissage. Un composant peut être le virtualiseur gzip qui, plutôt que d'écrire dans le système de fichiers, compresse les objets générés en utilisant gzip.
Voici une FAQ sur le sujet: http://community.jaspersoft.com/wiki/support-large-reports
L'exemple se réfère à peut être obtenu en téléchargeant la source JR.
http://sourceforge.net/project/showfiles.php?group_id=36382&package_id=28579
Du point de vue de haut niveau, si vous exécutez ce rapport dans une application, vous pouvez instancier le virtualizer (est l'interface ici la liste des classes implémentant connues): http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/JRVirtualizer.html
Ensuite, la référence est utilisé au moment de remplissage:
JRDataSource ds = new JREmptyDataSource(10);
JRFileVirtualizer virtualizer = new JRFileVirtualizer(2, "tmp");
JasperPrint jasperPrint = fillReport(fileName, ds, virtualizer);
Si vous êtes un iReport virtualizer peut être configuré dans options -> Paramètres.
J'espère que c'est utile.
Luke
Nous n'utilisons iReport que pour la conception et la compilation. Tout est exécuté sur l'application swing du client –
Ensuite, assurez-vous qu'il est exécuté et exécuté avec le compilateur Eclipse JDT (le dist JasperReports est fourni avec le JAR mais vous devez le configurer pour l'utiliser). Si vous utilisez JRBshCompiler, c'est probablement la cause. – cletus