Bonjour, je génère un rapport principal avec des sous rapports
Dans le rapport principal (parent) je définie les champs suivant ainsi que le paramètre SIMPLE_DATA
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 "<parameter name=\"SIMPLE_DATA\" class=\"java.util.HashMap\">" + for (int i=0; i < subReportName.size(); i++) { jrxml.append("\t<field name=\""+subReportName.get(i)+"\" class=\"java.lang.String\"/>\n"); jrxml.append("\t<field name=\""+subReportName.get(i)+"_JasperReport\" class=\"java.lang.String\"/>\n"); }
Sous l'élément detail, je définie les sous rapports suivants
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 for (int i=0; i < subReportName.size(); i++) { jrxml.append("\t\t\t<subreport>\n" + "\t\t\t\t<reportElement positionType=\"Float\" x=\"67\" y=\"18\" width=\"168\" height=\"47\"/>\n" + "\t\t\t\t<subreportParameter name=\""+subReportName.get(i)+"\">\n" + "\t\t\t\t\t<subreportParameterExpression><![CDATA[$P{SIMPLE_DATA}.get($F{"+subReportName.get(i)+"})]]></subreportParameterExpression>\n" + "\t\t\t\t</subreportParameter>\n" + "\t\t\t\t<subreportParameter name=\""+subReportName.get(i)+"_JasperReport\">\n" + "\t\t\t\t\t<subreportParameterExpression><![CDATA[$P{SIMPLE_DATA}.get($F{"+subReportName.get(i)+"_JasperReport})]]></subreportParameterExpression>\n" + "\t\t\t\t</subreportParameter>\n" + "\t\t\t\t<dataSourceExpression><![CDATA[$P{SIMPLE_DATA}.get($F{"+subReportName.get(i)+"})]]></dataSourceExpression>\n" + "\t\t\t\t<subreportExpression class=\"net.sf.jasperreports.engine.JasperReport\"><![CDATA[$P{SIMPLE_DATA}.get($F{"+subReportName.get(i)+"_JasperReport}]]></subreportExpression>\n" + "\t\t\t</subreport>\n"); }
Dans le JRDataSource du rapport principal (parent), je rajoute les champs suivants
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 for (int i=0; i < subReportName.size(); i++) { simpleMasterMap.put(subReportName.get(i), subReportName.get(i)); simpleMasterMap.put(subReportName.get(i)+"_JasperReport", subReportName.get(i)+"_JasperReport"); } List simpleMasterList = new ArrayList(); simpleMasterList.add(simpleMasterMap); JRDataSource simpleDS = new JRMapCollectionDataSource(simpleMasterList);
SIMPLE_DATA est ajouté comme paramètre dans le rapport principal
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 HashMap SIMPLE_DATA = new HashMap(); for (int i=0; i < subReportDataSource.size(); i++) { SIMPLE_DATA.put(subReportName.get(i), subReportDataSource.get(i)); } for (int i=0; i < subReportDataSource.size(); i++) { SIMPLE_DATA.put(subReportName.get(i)+"_JasperReport", subReportJasperReport.get(i)); } params.put("SIMPLE_DATA", SIMPLE_DATA);
et j'obtiens l'erreur de compilation suivante
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 net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: 1. Syntax error, insert ")" to complete Expression value = ((java.util.HashMap)parameter_SIMPLE_DATA.getValue()).get(((java.lang.String)field_subReport_6071684_JasperReport.getValue()); //$JR_EXPR_ID=17$ ^ 2. Syntax error, insert ")" to complete Expression value = ((java.util.HashMap)parameter_SIMPLE_DATA.getValue()).get(((java.lang.String)field_subReport_14892984_JasperReport.getValue()); //$JR_EXPR_ID=21$ ^ 3. Syntax error, insert ")" to complete Expression value = ((java.util.HashMap)parameter_SIMPLE_DATA.getValue()).get(((java.lang.String)field_subReport_6071684_JasperReport.getOldValue()); //$JR_EXPR_ID=17$ ^ 4. Syntax error, insert ")" to complete Expression value = ((java.util.HashMap)parameter_SIMPLE_DATA.getValue()).get(((java.lang.String)field_subReport_14892984_JasperReport.getOldValue()); //$JR_EXPR_ID=21$ ^ 5. Syntax error, insert ")" to complete Expression value = ((java.util.HashMap)parameter_SIMPLE_DATA.getValue()).get(((java.lang.String)field_subReport_6071684_JasperReport.getValue()); //$JR_EXPR_ID=17$ ^ 6. Syntax error, insert ")" to complete Expression value = ((java.util.HashMap)parameter_SIMPLE_DATA.getValue()).get(((java.lang.String)field_subReport_14892984_JasperReport.getValue()); //$JR_EXPR_ID=21$ ^ 6 errors
Je ne voie pas d'où peut venir l'erreur. Merci d'avance pour vos réponses
Partager