Bonjour,
J'ai fait plusieurs recherches avant de m'adresser à vous et de vous poser ma question ou plutôt vous exposer mon soucis.
Donc comme son titre l'indique, je souhaiterai mette en place l'international sur mon projet. J'ai donc une application J2E ou je génère déjà des pdf avec jasper et iReport version 3.7.6
J'ai donc généré un fichier de properties pour l'international via l'option fichier - new - ressources bundle que j'ai appelé test_FR.properties et qui se trouve donc dans mon projet.
Voici ma classe qui fait appel et qui génère mon pdf :
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| Commande commande = getCommandeWithLignesById(idCommande);
Map parameters = new HashMap();
JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource( commande.getLignesCommande() ,false);
int leCodeEtat= commande.getCodeEtat();
// contenu de la commande
parameters.put("COMMANDE_HEADER", commande);
//logo des mousquetaires
try {
parameters.put(PRODUCT_REPORT_KOOSSERY_LOGO,
new FileInputStream(JASPER_REPORT_KOOSSERY_LOGO_PATH.getFile()));
} catch (Exception e) {
log.error("Une erreur est survenue lors de la récupération du logo des mousquetaires du rapport Jasper.",e);
throw new RuntimeException ("Erreur de génération du rapport Jasper", e);
}
//logo erelais
try {
parameters.put(LOGO_ERELAIS, new FileInputStream(JASPER_LOGO_ERELAIS_PATCH.getFile()));
} catch (Exception e) {
log.error("Une erreur est survenue lors de la récupération du logo erelais du rapport Jasper.",e);
throw new RuntimeException ("Erreur de génération du rapport Jasper", e);
}
//recuperation fichier properties pour internationalisation
ResourceBundle resources = ResourceBundle.getBundle("ressources.test");
Locale laLocale = Locale.getDefault();
parameters.put(JRParameter.REPORT_RESOURCE_BUNDLE, resources);
parameters.put(JRParameter.REPORT_LOCALE, laLocale);
byte[] data;
String lePdf = null;
if (typePdf==Constantes.TYPEPDF_ENCOURS){
lePdf = "/fr/stime/commanderelais/report/SaisieCommandes.jrxml";
}
else if (typePdf==Constantes.TYPEPDF_TRANSMIS){
lePdf = "/fr/stime/commanderelais/report/EncoursCommandes.jrxml";
}
else if (typePdf==Constantes.TYPEPDF_HISTORIQUE && leCodeEtat==1){
lePdf = "/fr/stime/commanderelais/report/HistoCommandes.jrxml";
}
else {
lePdf = "/fr/stime/commanderelais/report/HistoCommandesClotu.jrxml";
}
try {
InputStream is = getClass().getResourceAsStream(lePdf);
JasperReport jasperreport = JasperCompileManager.compileReport(is);
JasperPrint jasperPrint = JasperFillManager.fillReport(
jasperreport,
parameters,
dataSource);
data = JasperExportManager.exportReportToPdf(jasperPrint);
} catch (Exception e) {
log.error("Une erreur est survenue pendant la génération du rapport Jasper.",e);
throw new RuntimeException("Erreur de génération du rapport jasper", e);
}
return data;
} |
Mais je n'arrive pas à récupérer par exemple codePays qui se trouve dans mon properties sous la forme codePays=ceci est un test dans ireport si je pouvais avoir des explications ?
Merci d'avance