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 :

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>
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
 
 *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...
J'ai besoin de caster cette variable pour l'utiliser dans un chart.

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