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