2017-10-02 5 views
0

Je reçois erreur dans iReport quand lors de la compilation de sous-état:subreport Jasper ne pas avoir datasourcebeans propriété sous objet

Errors compiling E:\workspace_new\kidslake\src\main\resources\admissionForm_sub_1.jasper! 
Compilation exceptions: [email protected]1 
net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: 
1. The method getFullName() is undefined for the type Object                  
value = ((java.lang.Object)field_director.getValue()).getFullName(); //$JR_EXPR_ID=17$                                                                        
2. The method getFullName() is undefined for the type Object                  
value = ((java.lang.Object)field_director.getOldValue()).getFullName(); //$JR_EXPR_ID=17$                                                                           
3. The method getFullName() is undefined for the type Object                  
value = ((java.lang.Object)field_director.getValue()).getFullName(); //$JR_EXPR_ID=17$                                                                        
3 errors      
at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:204)      
at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:512)      
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)      

Ma classe de haricot est comme

class Mainclass{ 
    private List<AdmissionForm> admissionForm; 
    //getter 
    //setter 
} 

class AdmissionForm{ 
    private Director director; 
    //getter 
    //setter 
} 

class Director{ 
    private String fullName; 
    //getter 
    //setter 
} 

Je passe JRBeanCollectionDataSource liste des MainClass dans mon rapport principal

J'ai défini le sous-rapport et le champ de passe comme new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{admissionFormList})

je définis pour accéder directeur fullname propriété dans mon sous-état

$F{director}.getFullName() 

mais quand je compile le rapport principal ou sous-état obtenir l'erreur ci-dessus.

Aidez-moi à résoudre mon problème

+0

On dirait que quelque chose ne va pas avec le modèle de votre sous-état. Avez-vous getter public pour 'Director.fullName'? –

+0

Oui, j'ai getter et setter publique –

+0

Vous devriez publier l'extrait de * jrxml * avec la déclaration des champs. Avez-vous vérifié les solutions par data67? –

Répondre

1

Vous pouvez faire une des opérations suivantes:

  1. Définissez le type du champ rapport director à Director (nom de classe complet/qualifié). Apparemment, le type de champ actuel est java.lang.Object
  2. Modifiez la langue du rapport en Groovy.
  3. Déclarez un champ de rapport intitulé director.fullName et utiliser le champ directement au lieu de $F{director}.getFullName()