Bonjour,
j'utilise iReport 3.5.1 avec une source de données xml et je souhaiterai caster un string vers un number. Voici ce que j'ai fait :
lorsque je charge xml en tant que source de données, j'ai un champ nombre de type number. Voici mon fichier xml :
Dans mon report, lorsque j'affiche mon nombre avec comme propriété : FieldClass à java.lang.String, je n'ai pas de problème mais si je la modifie à java.lang.Number, j'ai une erreur du style:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <stats> <stat> <label>Candidats</label> <nombre type="number">100</nombre> </stat> <stat> <label>Admis</label> <nombre type="number">60</nombre> </stat> <stat> <label>Inscrits</label> <nombre type="number">40</nombre> </stat> </stats>
J'ai besoin de caster cette variable pour l'utiliser dans un chart.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 *Compiling to file... /home/papy/softs/examples/ACF_XML_Test_Chart.jasper Compilation running time: 363! *Filling report... *Locale: français (France) *Time zone: Default Error*filling*print...*null java.lang.NullPointerException ****at*org.apache.commons.beanutils.locale.LocaleConvertUtilsBean.convert(LocaleConvertUtilsBean.java:235) ****at*net.sf.jasperreports.engine.data.JRAbstractTextDataSource.convertStringValue(JRAbstractTextDataSource.java:68) ****at*net.sf.jasperreports.engine.data.JRXmlDataSource.getFieldValue(JRXmlDataSource.java:304) ****at*net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:802) ****at*net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:766) ****at*net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1402) ****at*net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:111) ****at*net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:888) ****at*net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:123) ****at*net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:420) ****at*net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:256) ****at*com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:995) ****at*org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:561) ****at*org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:986) Print not filled. Try to use an EmptyDataSource...
Pour information, j'ai fait la même procédure avec comme source de données une base de données et cela marche sans problème.
Quelqu'un a-t-il une idée sur la façon de procéder ?
Merci
Charly
Partager