Bonjour,

Je veux générer des rapport en utilisant JasperReport,
en faite j'utilise au lieux de SQL EJBQL puisque j'utilise JPA pour la persistance , j'ai des requêtes complexes (je dois construire la requête selon le choix de l'utilisateur à partir de l'interface web c'est à dire les critères de recherche).
l'idée est de construire la requête et de l'envoyé en paramétre au rapport mais ensuite je ne sais plus comment faire pour afficher les fields.

j'ai fait un petit code pour tester mais je me suis bloqué:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
37
public static void main(String[] args)
{
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("JiraMapPU");
EntityManager entityManager = entityManagerFactory.createEntityManager();
Map parameterMap = new HashMap();
 
 
parameterMap.put(JRJpaQueryExecuterFactory.PARAMETER_JPA_ENTITY_MANAGER, entityManager);
String sql="select j from Jiraissue j where j.priority='3'";
parameterMap.put("SQL",sql);
 
try
{
 
JasperReport report = JasperCompileManager.compileReport("C:/Documents and Settings/My Documents/NetBeansProjects/JiraMap/src/java/Reports/Test.jrxml");
JasperPrint print = JasperFillManager.fillReport(report,parameterMap);
JasperExportManager.exportReportToPdfFile(print,"C:/Documents and Settings/My Documents/NetBeansProjects/JiraMap/src/java/Reports/Test.pdf");
 
}
catch (JRException ex)
 
{
ex.printStackTrace();
}
finally
{
if (entityManager != null && entityManager.isOpen())
{
entityManager.close();
}
if (entityManagerFactory != null &&
entityManagerFactory.isOpen())
{
entityManagerFactory.close();
}
}
}

C'est mon rapport.jrxml:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
37
38
39
40
41
42
43
44
45
46
47
48
49
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Test" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
	<property name="ireport.zoom" value="1.0"/>
	<property name="ireport.x" value="0"/>
	<property name="ireport.y" value="0"/>
	<parameter name="SQL" class="java.lang.String" ></parameter>
        <parameter name="id" class="java.lang.Long" />
	<queryString language="ejbql">
		<![CDATA[$P!{SQL}]]>
	</queryString>
 
 
	<background>
		<band splitType="Stretch"/>
	</background>
	<title>
			<band height="79" splitType="Stretch">
 
		</band>
	</title>
	<pageHeader>
		<band height="35" splitType="Stretch"/>
	</pageHeader>
	<columnHeader>
		<band height="84" splitType="Stretch">
 
 
		</band>
	</columnHeader>
	<detail>
			<band height="125" splitType="Stretch">
	<textField>
		<reportElement x="200" y="100" width="200" height="20"/>
		<textElement/>
		<textFieldExpression class="java.lang.Long"><![CDATA[$P{id}]]></textFieldExpression>
	</textField>
 
		</band>
	</detail>
	<columnFooter>
		<band height="45" splitType="Stretch"/>
	</columnFooter>
	<pageFooter>
		<band height="54" splitType="Stretch"/>
	</pageFooter>
	<summary>
		<band height="42" splitType="Stretch"/>
	</summary>
</jasperReport>

Merci d'avance