IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Jasper Discussion :

erreur de compilation pour des sous rapports


Sujet :

Jasper

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    728
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 728
    Points : 250
    Points
    250
    Par défaut erreur de compilation pour des sous rapports
    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

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    728
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 728
    Points : 250
    Points
    250
    Par défaut
    Re-bonjour,
    j'ai résolu le problème en changeant la startégie

    j'ai mis les JasperReport en paramètre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            for (int i=0; i < subReportName.size(); i++) {
                jrxml.append("\t<parameter name=\""+subReportName.get(i)+"_JasperReport\" class=\"net.sf.jasperreports.engine.JasperReport\"/>\n");
            }
    je fais référence à ces paramètres dans l'élément subReportExpression

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "\t\t\t\t<subreportExpression class=\"net.sf.jasperreports.engine.JasperReport\"><![CDATA[$P{"+subReportName.get(i)+"_JasperReport}]]></subreportExpression>\n" +
    et ca marche. Malheureusement je n'obtien qu'une page vide, mais plus d'erreur de compilation

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. page blanche pour des sous rapports
    Par flamant dans le forum Jasper
    Réponses: 1
    Dernier message: 01/08/2012, 11h44
  2. Compiler pour Windows sous Linux
    Par YuGiOhJCJ dans le forum Choisir un environnement de développement
    Réponses: 11
    Dernier message: 05/09/2007, 19h40
  3. Réponses: 2
    Dernier message: 05/03/2007, 18h55
  4. Réponses: 12
    Dernier message: 12/08/2006, 15h30
  5. Décalage des sous rapports
    Par Sylmandel dans le forum iReport
    Réponses: 1
    Dernier message: 21/07/2006, 12h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo