|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 6 ![]() |
Bonjour à tous
J'essaye de créer un crosstab et j'ai le problèmer ci-dessous lors de la compilation: Cannot cast from integer to string Voici le message d'erreur: Compilation vers le fichier... .\rapport_modèle.jasper -> C:\Program Files\JasperSoft\iReport-2.0.1\rapport_modèle.java Erreurs lors de la compilation de .\rapport_modèle.jasper. net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: 1. Cannot cast from Integer to String value = (java.lang.String)(((java.lang.Integer)field_priorite.getValue()));//$JR_EXPR_ID=12$ <----------------------------------------------------------------> 2. Cannot cast from Integer to String Merci de m'aider |
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() |
Avec un ".toString()" à la fin de ton expression ça passe pas ?
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 6 ![]() |
Avec un .toString() à la fin de mon expression j'ai ça:
Compilation vers le fichier... .\exemple4.jasper -> C:\Program Files\JasperSoft\iReport-2.0.1\exemple4.java net.sf.jasperreports.engine.design.JRValidationFault@15e3abb java.lang.ClassNotFoundException: java.lang.toString() Line: 100, Column: 55 JRXML Element: /jasperReport/detail[1]/band[1]/crosstab[1]/columnGroup[1]/bucket[1]/bucketExpression[1] net.sf.jasperreports.engine.design.JRValidationFault@161f9da java.lang.ClassNotFoundException: java.lang.toString() Line: 100, Column: 55 JRXML Element: /jasperReport/detail[1]/band[1]/crosstab[1]/columnGroup[1]/bucket[1]/bucketExpression[1] net.sf.jasperreports.engine.design.JRValidationException: Report design not valid : 1. java.lang.ClassNotFoundException: java.lang.toString() 2. java.lang.ClassNotFoundException: java.lang.toString() at net.sf.jasperreports.engine.design.JRAbstractCompiler.verifyDesign(JRAbstractCompiler.java:260) at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:144) at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:587) at java.lang.Thread.run(Unknown Source) Durée de la compilation : 171. Merci de m'aider |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() |
Euh... en fait ce qu'il faudrais faire c'est mettre "field_priorite.toString()" à l'endroit d'où provient l'erreur.
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 6 ![]() |
Pardonnez moi pour mes betises mais je suis q'un débutant sur ireport.
j'ai fait le remplacement comme vous me l'avez récommandé, la compilation à presque marché. Ireport me rétourne ceci: Remplissage du rapport… Paramètres locaux : français (France) Fuseau horaire : Par défaut Utilisation du virtualiseur de rapport…Taille JRFileVirtualizer : 100 Répertoire de permutation : .; Erreur lors du remplissage de l’impression… Error incrementing crosstab dataset net.sf.jasperreports.engine.JRRuntimeException: Error incrementing crosstab dataset at net.sf.jasperreports.engine.fill.JRFillCrosstab$JRFillCrosstabDataset.customIncrement(JRFillCrosstab.java:671) at net.sf.jasperreports.engine.fill.JRFillElementDataset.increment(JRFillElementDataset.java:169) at net.sf.jasperreports.engine.fill.JRCalculator.calculateVariables(JRCalculator.java:152) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:682) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportContent(JRVerticalFiller.java:275) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:117) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:791) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:695) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:63) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:402) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:234) at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:943) at java.lang.Thread.run(Unknown Source) Caused by: net.sf.jasperreports.engine.JRException: Crosstab data has already been processed. at net.sf.jasperreports.crosstabs.fill.calculation.BucketingService.addData(BucketingService.java:295) at net.sf.jasperreports.engine.fill.JRFillCrosstab$JRFillCrosstabDataset.customIncrement(JRFillCrosstab.java:667) ... 12 more L’impression n’est pas complétée. Essayez d’utiliser une EmptyDataSource... Merci pour vos récommandations Une pétite question: La modification que vous m'avez demandé de faire c'est au niveau de la classe où j'ai java.lang.String ou l'expression de bloc. Merci pour votre aide |
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() |
En fait tu as un champ de type "java.lang.String" et tu veux mettre une variable "java.lang.Integer" dans le champ. Deux choix possibles : soit tu remplaces java.lang.String par java.lang.Integer (le mieux) soit tu mets ".toString()" à la fin de l'expression dans le champ. Bon c'est encore un peu flou comme explication ! Mais t'as résolu le problème donc ça va
Sinon pour ton erreur "Error incrementing crosstab dataset" tu devrais vérifier que tu n'a pas de champs "null" venant de ta BDD. |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 6 ![]() |
Bonjour
J'ai évidement un sérieux problème avec les types. As tu un lien a me récommander sinon, une explication en live me ferait vraiment du bien. Cordialement |
|
|
00
|
|
|
#8 | ||
|
Membre du Club
![]() |
Alors, pour faire simple, en Java il y a les types : int, bool et double par exemple (leur nom ne commence jamais par une majuscule). Et des classes pour faciliter les opérations sur les types : Integer, Boolean, Double, BigDecimal, String, etc.
Ce qu'il faut savoir c'est que toute ces classes ont une métode toString() qui les transforment en String. C'est ces classes qu'on utilise généralement pour stocker des nombres (et c'est ce que fait Jasper). Seul soucis, on ne peut pas faire d'opération sur ces classes, du coup il faut appeler une méthode qui va renvoyer le type natif correspondant. Exemple : Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com