abracadabraPDF › Forums › PDF – Général › Changement de champs basé sur différentes sélections (Combo Box). – RÉSOLU › Répondre à : Changement de champs basé sur différentes sélections (Combo Box). – RÉSOLU

Code:(function () {
var a = getField(« Module_code »).value;
if (a === 0) {event.target.value = « »};if (a === 1) {event.target.value = util.printf(« %.2f », 33.33) + » % »}; // j’affiche simplement 33 % si
if (a === 2) {event.target.value = util.printf(« %.2f », 20) + » % »};
if (a === 3) {event.target.value = util.printf(« %.2f », 16.67) + » % »};
if (a === 4) {event.target.value = util.printf(« %.2f », 12.5) + » % »};
if (a === 5) {event.target.value = util.printf(« %.2f », 11.11) + » % »};
if (a === 6) {event.target.value = util.printf(« %.2f », 9.09) + » % »};
})();
C’est normal que ça ne fonctionne pas :
– le champ Module_code n’a pas de valeurs d’exportation associées aux intitulés.
Donc soit il faut en mettre une, soit il faut utiliser la valeur de l’intitulé (Y1H3 par ex.),
– il ne faut pas placer ce code en fonction c’est le meilleur moyen pour qu’il ne se déclenche pas,
– la vérification d’égalité c’est == et non pas === (il est possible que ce soit correct aussi mais dans le doute…),
– il manque les guillemets autour des valeurs testées,
– il faut placer this. devant getField,
– qu’attends tu de « util.printf » ???
Le code devrait donc plutôt ressembler à ca :
var a = this.getField(« Module_code »).value;
if (a == « 0 ») {event.target.value = « »};
if (a == « 1 ») {event.target.value = « 33.33 % »};
if (a == « 2 ») {event.target.value = « 20 % »};
if (a == « 3 ») {event.target.value = » % »};
if (a == « 4 ») {event.target.value = « 12.5 % »};
if (a == « 5 ») {event.target.value = « 11.11 % »};
if (a == « 6 ») {event.target.value = « 9.09 % »};
Ou bien à ça :
var a = this.getField(« Module_code »).value;
if (a == « Y1H3 ») {event.target.value = « »};
if (a == « Y2H4 ») {event.target.value = « 33.33 % »};
etc.
et ce code, affiche tout le temps, meme sans aucune selection: « Can begin next level » ???
Code:var nMarksTotal = this.getField(« MarksTotal »).value;
if ( nMarksTotal == ‘100’ ) event.target.value = « Awarded »;
else if ( nMarksTotal >= ’70’ || nMarksTotal else if ( nMarksTotal else event.target.value = « »;pourrait tu m’éclairer un peu plus, merci
C’est normal que ça ne fonctionne pas là aussi : le champ MarksTotal exécute un script de validation qui ajoute systématiquement « % » (espace-pourcentage) à la valeur de ce champ.
Donc cette valeur ne peut jamais correspondre puisque tu recherches des valeurs sans espace et sans pourcentage…
:oh:
Quand je t’avais indiqué le script pour ajouter espace-pourcentage, je t’avais mis en garde contre les conséquences que pouvait avoir la modification du formatage du résultat d’un calcul, surtout si cette valeur doit être ré-utilisée ensuite.
Je t’avais encouragé à utiliser un pourcentage « en dur » (soit du texte sur la page, soit dans un champ à part et verrouillé en lecture seule) et à laisser la valeur du calcul telle quelle.
:Smiley15: