Partage
  • Partager sur Facebook
  • Partager sur Twitter

Rapport Jasper dans un executable

Le rapport n'apparait plus

Sujet résolu
14 octobre 2015 à 3:12:25

Bonjour les gars, je suis confronté à un vrai problème qui me casse la tête depuis bien longtemps. 

En fait j'utilise jasper pour créer des rapports que j'appelle ensuite dans mon programme java. 

Tout marche très bien avec le projet, au final, j'ai générer mon fichier .jar pour ensuite créer un exécutable avec lauch4j et innoSetup.

Voilà une capture d'écran : 

Extrait d'un fichier généré

Lorsque j'installe l'application finale sur mon PC, tout fonctionne à merveille mais maintenant, le problème est que  sur un autre PC, rien ne vient, en d'autres termes, la capture d'écran précédente ne vient plus. Vraiment si j'ai pas trouvé la solution ici, c'est que c'est mort pour moi. :'(

Merci d'avance de votre aide.

  • Partager sur Facebook
  • Partager sur Twitter
C'est en programmant qu'on devient programmeur!!
14 octobre 2015 à 9:47:03

Bonjour.

Désolé je ne connais pas lauch4j.

Je peux te conseiller d'installer Java et d'y exécuter directement ton JAR, c'est comme ça que fonctionne Java : le JAR est exécutable partout où est installé Java.

Et sans plus de détails on pourra difficilement t'aider.

  • Partager sur Facebook
  • Partager sur Twitter
Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
14 octobre 2015 à 20:47:15

Oui oui je sais.

J'utilise la librairie jasperreports 5.5.6 et itext 5.5.6 et j'ai inclus toutes les librairies nécessaires à savoir commons-beanutils-1.9.0.jar, commons-collections-3.2.1.jar...

Donc, de ce coté, y'a pas de souci vu que tout marche proprement sur mon PC.

Voici le code java (la fonction) que j'ai utilisé pour appeler le fichier jasper :

        public static void file(int Rg, String path)
	{
		try {
			HashMap<String, Object> params = new HashMap<>();
			ArrayList<String> a = new ArrayList<>();
                        a.add(Rg + "");
			params.put("paramRegistre", a);                        
                        
                        JasperDesign jd = JRXmlLoader.load(JRLoader.getFileInputStream(System.getenv("SystemDrive") + "/fls/APS" + path));                        
                        
                        JasperReport report = JasperCompileManager.compileReport(jd);
			JasperPrint print = JasperFillManager.fillReport(report, params, Connexion.myCon());
			JFrame jf = new JFrame();
			jf.getContentPane().add(new JRViewer(print));
			jf.setLocationRelativeTo(null);
			jf.setBounds(100, 100, 792, 593);
			jf.setVisible(true);
                        jf.setExtendedState(jf.getExtendedState() | JFrame.MAXIMIZED_BOTH);
		} catch (Exception e) {		
           JOptionPane.showMessageDialog(null, e.getMessage(),"Erreur",JOptionPane.ERROR_MESSAGE);
//			e.printStackTrace();
		}
	}


En fait si ça peut aider voilà les erreurs signalées dans l'exception : 

Errors were encountered when compiling report expressions class file:
error: error reading C:\fls\APS\Etat civil APS.exe; cannot read zip file entry
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:4: package net.sf.jasperreports.engine does not exist
import net.sf.jasperreports.engine.*;
^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:5: package net.sf.jasperreports.engine.fill does not exist
import net.sf.jasperreports.engine.fill.*;
^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:18: cannot find symbol
symbol: class JREvaluator
public class Certifica32indiviuel_1444845430135_437410 extends JREvaluator
                                                               ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:25: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillParameter parameter_IS_IGNORE_PAGINATION = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:26: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillParameter parameter_REPORT_CONNECTION = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:27: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillParameter parameter_FILTER = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:28: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillParameter parameter_JASPER_REPORT = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:29: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillParameter parameter_REPORT_LOCALE = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:30: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillParameter parameter_REPORT_TIME_ZONE = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:31: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillParameter parameter_REPORT_TEMPLATES = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:32: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillParameter parameter_REPORT_MAX_COUNT = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:33: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillParameter parameter_REPORT_SCRIPTLET = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:34: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillParameter parameter_JASPER_REPORTS_CONTEXT = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:35: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillParameter parameter_paramRegistre = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:36: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillParameter parameter_REPORT_FILE_RESOLVER = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:37: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillParameter parameter_REPORT_FORMAT_FACTORY = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:38: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillParameter parameter_REPORT_PARAMETERS_MAP = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:39: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillParameter parameter_REPORT_RESOURCE_BUNDLE = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:40: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillParameter parameter_REPORT_DATA_SOURCE = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:41: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillParameter parameter_REPORT_CONTEXT = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:42: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillParameter parameter_REPORT_CLASS_LOADER = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:43: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillParameter parameter_REPORT_URL_HANDLER_FACTORY = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:44: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillParameter parameter_REPORT_VIRTUALIZER = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:45: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillParameter parameter_SORT_FIELDS = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:46: cannot find symbol
symbol  : class JRFillField
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillField field_d = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:47: cannot find symbol
symbol  : class JRFillField
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillField field_numreg = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:48: cannot find symbol
symbol  : class JRFillField
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillField field_infos = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:49: cannot find symbol
symbol  : class JRFillVariable
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillVariable variable_PAGE_NUMBER = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:50: cannot find symbol
symbol  : class JRFillVariable
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillVariable variable_MASTER_CURRENT_PAGE = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:51: cannot find symbol
symbol  : class JRFillVariable
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillVariable variable_MASTER_TOTAL_PAGES = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:52: cannot find symbol
symbol  : class JRFillVariable
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillVariable variable_COLUMN_NUMBER = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:53: cannot find symbol
symbol  : class JRFillVariable
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillVariable variable_REPORT_COUNT = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:54: cannot find symbol
symbol  : class JRFillVariable
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillVariable variable_PAGE_COUNT = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:55: cannot find symbol
symbol  : class JRFillVariable
location: class Certifica32indiviuel_1444845430135_437410
    private JRFillVariable variable_COLUMN_COUNT = null;
            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:78: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
        parameter_IS_IGNORE_PAGINATION = (JRFillParameter)pm.get("IS_IGNORE_PAGINATION");
                                          ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:79: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
        parameter_REPORT_CONNECTION = (JRFillParameter)pm.get("REPORT_CONNECTION");
                                       ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:80: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
        parameter_FILTER = (JRFillParameter)pm.get("FILTER");
                            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:81: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
        parameter_JASPER_REPORT = (JRFillParameter)pm.get("JASPER_REPORT");
                                   ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:82: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
        parameter_REPORT_LOCALE = (JRFillParameter)pm.get("REPORT_LOCALE");
                                   ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:83: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
        parameter_REPORT_TIME_ZONE = (JRFillParameter)pm.get("REPORT_TIME_ZONE");
                                      ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:84: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
        parameter_REPORT_TEMPLATES = (JRFillParameter)pm.get("REPORT_TEMPLATES");
                                      ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:85: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
        parameter_REPORT_MAX_COUNT = (JRFillParameter)pm.get("REPORT_MAX_COUNT");
                                      ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:86: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
        parameter_REPORT_SCRIPTLET = (JRFillParameter)pm.get("REPORT_SCRIPTLET");
                                      ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:87: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
        parameter_JASPER_REPORTS_CONTEXT = (JRFillParameter)pm.get("JASPER_REPORTS_CONTEXT");
                                            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:88: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
        parameter_paramRegistre = (JRFillParameter)pm.get("paramRegistre");
                                   ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:89: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
        parameter_REPORT_FILE_RESOLVER = (JRFillParameter)pm.get("REPORT_FILE_RESOLVER");
                                          ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:90: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
        parameter_REPORT_FORMAT_FACTORY = (JRFillParameter)pm.get("REPORT_FORMAT_FACTORY");
                                           ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:91: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
        parameter_REPORT_PARAMETERS_MAP = (JRFillParameter)pm.get("REPORT_PARAMETERS_MAP");
                                           ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:92: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
        parameter_REPORT_RESOURCE_BUNDLE = (JRFillParameter)pm.get("REPORT_RESOURCE_BUNDLE");
                                            ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:93: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
        parameter_REPORT_DATA_SOURCE = (JRFillParameter)pm.get("REPORT_DATA_SOURCE");
                                        ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:94: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
        parameter_REPORT_CONTEXT = (JRFillParameter)pm.get("REPORT_CONTEXT");
                                    ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:95: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
        parameter_REPORT_CLASS_LOADER = (JRFillParameter)pm.get("REPORT_CLASS_LOADER");
                                         ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:96: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
        parameter_REPORT_URL_HANDLER_FACTORY = (JRFillParameter)pm.get("REPORT_URL_HANDLER_FACTORY");
                                                ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:97: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
        parameter_REPORT_VIRTUALIZER = (JRFillParameter)pm.get("REPORT_VIRTUALIZER");
                                        ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:98: cannot find symbol
symbol  : class JRFillParameter
location: class Certifica32indiviuel_1444845430135_437410
        parameter_SORT_FIELDS = (JRFillParameter)pm.get("SORT_FIELDS");
                                 ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:107: cannot find symbol
symbol  : class JRFillField
location: class Certifica32indiviuel_1444845430135_437410
        field_d = (JRFillField)fm.get("d");
                   ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:108: cannot find symbol
symbol  : class JRFillField
location: class Certifica32indiviuel_1444845430135_437410
        field_numreg = (JRFillField)fm.get("numreg");
                        ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:109: cannot find symbol
symbol  : class JRFillField
location: class Certifica32indiviuel_1444845430135_437410
        field_infos = (JRFillField)fm.get("infos");
                       ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:118: cannot find symbol
symbol  : class JRFillVariable
location: class Certifica32indiviuel_1444845430135_437410
        variable_PAGE_NUMBER = (JRFillVariable)vm.get("PAGE_NUMBER");
                                ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:119: cannot find symbol
symbol  : class JRFillVariable
location: class Certifica32indiviuel_1444845430135_437410
        variable_MASTER_CURRENT_PAGE = (JRFillVariable)vm.get("MASTER_CURRENT_PAGE");
                                        ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:120: cannot find symbol
symbol  : class JRFillVariable
location: class Certifica32indiviuel_1444845430135_437410
        variable_MASTER_TOTAL_PAGES = (JRFillVariable)vm.get("MASTER_TOTAL_PAGES");
                                       ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:121: cannot find symbol
symbol  : class JRFillVariable
location: class Certifica32indiviuel_1444845430135_437410
        variable_COLUMN_NUMBER = (JRFillVariable)vm.get("COLUMN_NUMBER");
                                  ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:122: cannot find symbol
symbol  : class JRFillVariable
location: class Certifica32indiviuel_1444845430135_437410
        variable_REPORT_COUNT = (JRFillVariable)vm.get("REPORT_COUNT");
                                 ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:123: cannot find symbol
symbol  : class JRFillVariable
location: class Certifica32indiviuel_1444845430135_437410
        variable_PAGE_COUNT = (JRFillVariable)vm.get("PAGE_COUNT");
                               ^
C:\fls\APS\Certifica32indiviuel_1444845430135_437410.java:124: cannot find symbol
symbol  : class JRFillVariable
location: class Certifica32indiviuel_1444845430135_437410
        variable_COLUMN_COUNT = (JRFillVariable)vm.get("COLUMN_COUNT");
                                 ^
66 errors
.



-
Edité par Cfass 14 octobre 2015 à 20:54:11

  • Partager sur Facebook
  • Partager sur Twitter
C'est en programmant qu'on devient programmeur!!
15 octobre 2015 à 12:12:35

Est-ce normal que tu tente de charger un fichier exécutable au lieu d'un modèle de rapport?

error: error reading C:\fls\APS\Etat civil APS.exe

  • Partager sur Facebook
  • Partager sur Twitter
16 octobre 2015 à 14:16:54

max-om-93 a écrit:

Est-ce normal que tu tente de charger un fichier exécutable au lieu d'un modèle de rapport?

error: error reading C:\fls\APS\Etat civil APS.exe


J'ai pas bien compris ton post là, en fait, je ne charge le fichier exécutABLE. 

Comme tu peux le voir dans la fonction que j'ai écrite, le paramètre nommé path est le nom du fichier jasper (celui avec l'extension .jrxml) et au niveau de l'appel, je fais une concaténation entre le chemin de l'emplacement où je stocke tous les fichiers jasper et ce parametre en une chaîne. Je sais pas si j'ai répondu à ta question.

  • Partager sur Facebook
  • Partager sur Twitter
C'est en programmant qu'on devient programmeur!!
19 octobre 2015 à 11:41:39

Es-tu certain à 100% que la variable path contient bien le chemin de ton fichier .jrxml? Ce n'est pas ce que les logs disent en tout cas!

  • Partager sur Facebook
  • Partager sur Twitter
20 octobre 2015 à 14:08:09

Merci pour toutes vos réponses. J'ai finalement pu résoudre le problème juste en modifiant le code de génération de mon rapport.
  • Partager sur Facebook
  • Partager sur Twitter
C'est en programmant qu'on devient programmeur!!
27 septembre 2023 à 4:24:31

salut,

je un projet java d'où je utilise Irepot pour le rapport mais quand, je rendu mon projet exécutable , mon rapport avec Ireport ne fonction plus mais sans excitable sans fonction correctement.

aide moi svp.si possible même avec un lien d'une vidéo

-
Edité par BenMulumba1 27 septembre 2023 à 4:41:55

  • Partager sur Facebook
  • Partager sur Twitter
27 septembre 2023 à 10:49:05

@BenMulumba1 Bonsoir, merci de ne pas squatter le sujet résolu des autres, créer votre propre sujet dans le respect des règles du forum .

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter