Salut, Je pense qu'il y a un petit probleme dans le CPUE pour commencer juste une remarque, sur le commentaire suivant """ // Il faut etre au moins au deuxieme pas de temps. return p.date.getAnnee() > 0; """ pour moi un pas de temps est 1 mois et non pas une annee, donc j'espere que le commentaire est faux, sinon c le code :( Ensuite l'erreur: Dans le constructeur on a ca """ var allStr = SiMatrice.getListStrategies(); for(var i=0; i<allStr.size(); i++){ var str=allStr.get(i); var metiers=str.getSetOfVessels().getMetiers(); var ListeStrMonthInfos=str.getStrategyMonthInfos(); for (var j=0; j<ListeStrMonthInfos.size();j++){ var somme=0; var StrMonthInfo=ListeStrMonthInfos.get(j); for (var k=0;k<metiers.size();k++){ var metier=metiers.get(k); somme+=StrMonthInfo.getProportionMetier(metier); } this.p.SommePropInitial.put(new Chaine(str.getName()+"-"+metier.getNom()+"-"+StrMonthInfo.getMonth().getNumMois()),somme); } } """ la cle de SommePropInitial est donc str + metier + month or lorsqu'on l'utilise ensuite, on prend comme cle str + month donc il ne risque pas de retrouver ce qui avait ete calculé :( """ if (p.SommeCPUEstrat.get(new Chaine(str.getName()))>0){ newPropDiv = (p.SommePropInitial.get(new Chaine(str.getName()+"-"+strMonthInfo.getMonth().getNumMois()))-p.SommeProp.get(new Chaine(str.getName())))*CPUE/ p.SommeCPUEstrat.get(new Chaine(str.getName())); writeln("newpropdiv: "+newPropDiv); strMonthInfo.setProportionMetier(p.metier, new Packages.java.lang.Float(newPropDiv)); } """ Dans mon implantation j'ai pris comme cle str + month qui me parrait plus coherent. Donc le for dans le constructeur, sert dans mon interpretation a sommer toutes les proportions de tous les metiers pour un mois et une strategie donné et de conserver cette somme. Est-ce correct ? -- Benjamin -------------------- tél: +33 (0) 2 40 50 29 28 email: poussin@codelutin.com () campagne du ruban ascii http://www.codelutin.com /\ pour les mails en ascii