Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Jasper
Jasper Forum d'entraide sur Jasper Reports. Avant de poster --> FAQ Jasper, Tutoriels Jasper
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/09/2011, 10h11   #1
Invité de passage
 
Inscription : mars 2009
Messages : 6
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 6
Points : 2
Points : 2
Par défaut API JasperReports + hibernate - problème pour limiter les données lors de l'alimentation d'un rapport

Bonjour,
je développe une application en java utilisant l'API JasperReports 4.1.1 pour faire du reporting. Afin d'avoir une portabilité j'ai choisi d'utiliser l'API Hibernate 3.5.6 pour gérer la connexion et les requêtes avec JasperReports.

Jusque là j'ai réussi à faire fonctionner les deux ensemble et à générer des rapports. Mais je voudrais afficher dans un prévisualisateur juste la première page de mon rapport avec uniquement les données que l'on peut afficher à l'intérieur afin de gagner du temps sur l'exécution de la requête. Après avoir fait des recherches j'ai trouver une solution, qui consiste juste à ajouter une propriété dans l'alimentation du rapport pour faire cela. Voici mon code d'alimentation du rapport :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/**
	 * This method is used to fill a report and to show if an error occurred during the filling
	 */
	public void fillReport()
	{
		logger.trace("filling of report");
		reportPrinted = null;
		JasperReport reportCompiled = getReportCompiled();
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		Transaction transaction = session.beginTransaction();
		Map<String, Object> reportParameters = getFillingReportParameters(session);
		try
		{
			reportPrinted = JasperFillManager.fillReport(reportCompiled, reportParameters);
			logger.trace("filling report done and it contains {} pages", getNumberOfPages());
		} catch (JRException e)
		{
			logger.error("An error is occured while filling of report : {}", LoggerManager.getErrorMessage(e));
		}
		transaction.rollback();
	}
 
	/**
	 * @param session
	 *            the hibernate session
	 * @return the map of filling report parameters
	 */
	private Map<String, Object> getFillingReportParameters(Session session)
	{
		Map<String, Object> parameters = new HashMap<String, Object>();
		parameters.put(JRHibernateQueryExecuterFactory.PARAMETER_HIBERNATE_SESSION, session);
		parameters.put(JRHibernateQueryExecuterFactory.PROPERTY_HIBERNATE_QUERY_RUN_TYPE,
		               JRHibernateQueryExecuterFactory.VALUE_HIBERNATE_QUERY_RUN_TYPE_LIST);
		parameters.put(JRHibernateQueryExecuterFactory.PROPERTY_HIBERNATE_QUERY_LIST_PAGE_SIZE, 1);
		return parameters;
	}
Comme vous pouvez le constatez la propriété qui est censé répondre à mon besoin est la suivante :
Code :
parameters.put(JRHibernateQueryExecuterFactory.PROPERTY_HIBERNATE_QUERY_LIST_PAGE_SIZE, 1);
Cependant elle n'a aucun effet sur l'alimentation et j'ai toujours la totalité des pages générées. Est-ce un bug dans l'API JasperReports ? Sinon, toutes propositions de solutions sont la bienvenue.

Merci
mackbolan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h13.


 
 
 
 
Partenaires

Hébergement Web