Bonjour à tous,
j'ai un problème avec l'exécution de la boucle while de mon javascript.
Sur ma page jsp, j'ai le script ci-dessous qui me permet d'imprimer des données provenant de mon bean saisieReception
dans mon while j'appelle une fonction du bean saisieReception.getImpressionEtiquettes qui met à jour mon objet saisieReception.printConditionnement ce objet est ensuite passé en paramètre à la function javascript printReception() pour impression, ci-dessous la fonction du bean saisieReception.getImpressionEtiquettes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <h:panelGroup rendered="#{!saisieReception.multiPrintConditionnementVide}"> <ui:param name="numCarton" value="#{saisieReception.currentConditionnements.indexOf(saisieReception.printConditionnement)+1}" /> <ui:param name="numCartonRsd" value="#{numCarton}/#{saisieReception.nbCartonRsd}" /> <ui:param name="numCartonHdd" value="#{numCarton}/#{saisieReception.nbCartonHdd}" /> <script type="text/javascript"> $(document).ready(function() { alert("panel multiPrintConditionnement -> size = "+ '#{saisieReception.multiPrintConditionnement.size()}'); var i = '#{saisieReception.multiPrintConditionnement.size()}'; var test = 0; while (i>0){ test = '#{saisieReception.impressionEtiquettes}'; alert("test print "+test); printReception(1, '#{saisieReception.printConditionnement.itemId}', '#{saisieReception.currentArticle.pn}','#{saisieReception.numeroReception}', '#{saisieReception.currentFabricant.referenceFabricant}','#{saisieReception.currentArticle.libArticle}', #{saisieReception.printConditionnement.quantite},'#{saisieReception.currentArticle.hdd ? numCartonHdd : numCartonRsd}','#{saisieReception.formattedDateReception}', '#{saisieReception.currentPays.idePays}','#{saisieReception.currentAffectation.idEmplacement}'); i--; } }); </script> </h:panelGroup>
mon problème c'est que la fonction saisieReception.getImpressionEtiquettes n'est appelé qu'une seule fois dans la boucle while ce qui fait que: si par exple mon i = 4 dans le while, il boucle bien 4 fois et imprime 4 étiquettes mais avec les memes données parce que la fonction saisieReception.getImpressionEtiquettes est exécutée une seule fois
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public Integer getImpressionEtiquettes(){ if(inc < nbConditionnement){ clearPrintConditionnement(); setPrintConditionnement(multiPrintConditionnement.get(inc)); inc = inc +1; LOGGER.info("inc => " +inc); return inc; }else { LOGGER.info("dans le else => " +inc); // à ce niveau inc doit etre = à nbConditionnement inc = 0; return 0; } }
Quelqu'un aurait-il une idée du pourquoi ma boucle while de ma fonction javascript n'appelle qu'une fois au premier tour la fonction du bean et pas les autres fois? Je vous remercie d'avance!
Partager