Inscrivez-vous

abracadabraPDF Forum

Le seul forum francophone entièrement dédié au format PDF

Somme avec condition

526 6 normal post

dauof

12 mai 2017 : 23:25
Sorcier Messages: 25
Bonjour,
j'ai un exemple de fichier PDF (voir le fichier joint) dans lequel je dois créer du code JavaScript qui me permettrait de faire des sommes avec des conditions, je suis débutant dans ce langage et je ne sais pas comment m'y prendre.
Votre aide me sera très utile.

merci par avance.
« Modifié: 13 mai 2017 : 00:06 par Merlin »

  • Grand magicien
  • Messages: 7 286

Re : Somme avec condition

Merlin Réponse 1 13 mai 2017 : 00:23

Bonjour.

"Faire des sommes avec des conditions" c'est assez court comme explication…
Tout comme : "faire la somme des valeurs saisies des poids correspondants"…  :Euuuh:
Par ailleurs il est question "d'activer des cases" mais elles sont en "Lecture seule".  :mur:

Est-ce qu'il faut juste comprendre que tu voudrais faire la somme des cases cochées pour chaque colonne ou bien est-ce plus compliqué que ça ?   :doute:
« Modifié: 13 mai 2017 : 00:40 par Merlin »
Acrobate du PDF, InDesigner et Photoshopographe

  • Sorcier
  • Messages: 25

Re : Somme avec condition

dauof Réponse 2 13 mai 2017 : 06:32

Bonjour Merlin,
Effectivement les cases E, P et C (qui sont des zones de texte) s'activent en fonction des conditions A, B, C, D et E et elles sont en lecture seule (je ne souhaite pas qu'on puisse les modifier), la somme des poids se fait en fonction des condition A. B, C, D et E (comme c'est expliqué dans le fichier PDF) et des états E, P et C.


As-tu une autre façon de faire?

Merci par avance
« Modifié: 13 mai 2017 : 07:59 par dauof »

  • Grand magicien
  • Messages: 7 286

Re : Somme avec condition

Merlin Réponse 3 13 mai 2017 : 09:41

Voilà le script pour le premier total (A), je te laisse l'adapter pour les autres totaux :

if (this.getField("Check1E").value == "X" && this.getField("Dropdown01").value == "A") {
var nCheck1E = this.getField("Text1").value;
} else {
var nCheck1E = 0;
}
//
if (this.getField("Check2E").value == "X" && this.getField("Dropdown02").value == "A") {
var nCheck2E = this.getField("Text2").value;
} else {
var nCheck2E = 0;
}
//
if (this.getField("Check3E").value == "X" && this.getField("Dropdown03").value == "A") {
var nCheck3E = this.getField("Text3").value;
} else {
var nCheck3E = 0;
}
//
if (this.getField("Check4E").value == "X" && this.getField("Dropdown04").value == "A") {
var nCheck4E = this.getField("Text4").value;
} else {
var nCheck4E = 0;
}
//
if (this.getField("Check5E").value == "X" && this.getField("Dropdown05").value == "A") {
var nCheck5E = this.getField("Text5").value;
} else {
var nCheck5E = 0;
}
//
event.target.value = (nCheck1E + nCheck2E + nCheck3E + nCheck4E + nCheck5E) * 1;


Pour le 2e total (B, C, D) il faut ajouter deux conditions OU aux lignes if :

if (this.getField("Check1P").value == "X" && this.getField("Dropdown01").value == "B" ||  this.getField("Dropdown01").value == "C" ||  this.getField("Dropdown01").value == "D")

Par ailleurs, le script des listes déroulantes devrait se trouver en script de validation plutôt qu'en script de format.
 :Smiley15:
« Modifié: 13 mai 2017 : 09:55 par Merlin »
Acrobate du PDF, InDesigner et Photoshopographe

  • Sorcier
  • Messages: 25

Re : Somme avec condition

dauof Réponse 4 13 mai 2017 : 18:55

Merci Merlin pour ton aide,

par contre j'ai déplacé le script des listes déroulantes en script de validation,ça ne fonctionne pas. :oh:
Merci de ton aide.
« Modifié: 13 mai 2017 : 18:59 par dauof »

  • Grand magicien
  • Messages: 7 286

Re : Somme avec condition

Merlin Réponse 5 13 mai 2017 : 19:03

Dans ce cas laisse comme c'est tant que ça fonctionne, sinon il faudrait modifier les scripts.   :joker:
« Modifié: 13 mai 2017 : 19:08 par Merlin »
Acrobate du PDF, InDesigner et Photoshopographe

  • Sorcier
  • Messages: 25

Re : Somme avec condition

dauof Réponse 6 13 mai 2017 : 23:46

Merci Merlin :bravo: :bravo: :bravo: :bravo: