2009-10-19 8 views
1

comment utiliser JRSwapFileVirtualizer pour les rapports de jaspe en Java, c'est le code que j'utilise ..comment utiliser JRSwapFileVirtualizer pour les rapports de jaspe en java

JRSwapFileVirtualizer virtualizer = null; 
virtualizer = new JRSwapFileVirtualizer(10000, new JRSwapFile("F://", 1000, 1000), false); 
param.put(JRParameter.REPORT_VIRTUALIZER, virtualizer); 

xmlDataSource = new JRXmlDataSource(reportFile,"/table/tr"); 
jasperPrint = JasperFillManager.fillReport(jasperpath, param, xmlDataSource); 

encore que je reçois l'erreur d'espace de tas (OutOfMemeoryException), et le fichier qui est créé est vide.

+0

ne vous demande pas déjà une question presque identique? Publiez vous-même la réponse à cette question ou attendez que quelqu'un réponde. Ne pas inonder la page avec plusieurs questions sur le même problème – jitter

Répondre

6

Le premier paramètre du constructeur de JRSwapFileVirtualizer est le nombre maximal de pages de rapport qui seront stockées dans la mémoire primaire (RAM) avant que les sections du rapport soient stockées dans la mémoire virtuelle (disque). Donc, si la taille de votre page de rapport ne dépasse pas 10000 pages, vous ne pouvez pas les stocker dans la mémoire virtuelle et même si vous écrivez le code du virtualiseur, vous n'utilisez pas réellement cette beauté.

Essayez quelque chose comme,

JRSwapFileVirtualizer virtualizer = null; 
virtualizer = new JRSwapFileVirtualizer(3, new JRSwapFile("F://", 2048, 1024), false); 
param.put(JRParameter.REPORT_VIRTUALIZER, virtualizer); 

espérons que cela fonctionne :-)

... hourras

+0

Lorsque j'utilise ce code, il fonctionne très bien. Le problème est quand je crée le rapport au format xls avec l'enregistrement 40000 cela me donnera une erreur de mémoire de tas. –

+0

"F: //" est le chemin où se trouve votre jaspe? ou où votre Excel a été généré? –

Questions connexes