Bonjour,
Je suis actuellement sur Adobe acrobat Pro 2017.
J'essaye de réaliser un formulaire pouvant additionner des valeurs en fonction des coches et des montants présents dans des champs de texte.
J'avoue être débutant et ne pas tout comprendre.
Vous trouverez ci-dessous une tentative de code réalisée qui ne fonctionne pas
// Fonction pour calculer la somme en fonction des cases cochées
function calculerSomme() {
// Liste des champs à additionner avec leurs valeurs associées
var champsAAdditionner = [
{ nom: "OUI CGFS", valeur: 0 },
{ nom: "OUI CTJ", valeur: 0 },
{ nom: "frais archivage exo", valeur: 40 },
{ nom: "ISACOMPTA OUI EXO", valeur: 200 },
{ nom: "Stockanim exo", valeur: 40 },
{ nom: "frais deplacement exo", valeur: 58 },
{ nom: "Total_Saisie_Exo", valeur: 0 },
{ nom: "Total_Cloture_Exo", valeur: 0 },
{ nom: "Total_Bilan_Ouverture", valeur: 0 },
];
// Vérifier l'état des cases à cocher "TPE", "EI", et "SOCIETE"
var tpeCochee = this.getField("TPE").value === "On";
var eiCochee = this.getField("EI").value === "On";
var societeCochee = this.getField("SOCIETE").value === "On";
// Assurer qu'une seule option est sélectionnée
if (tpeCochee && (eiCochee || societeCochee)) {
this.getField("EI").value = "Off";
this.getField("SOCIETE").value = "Off";
} else if (eiCochee && (tpeCochee || societeCochee)) {
this.getField("TPE").value = "Off";
this.getField("SOCIETE").value = "Off";
} else if (societeCochee && (tpeCochee || eiCochee)) {
this.getField("TPE").value = "Off";
this.getField("EI").value = "Off";
}
// Mettre à jour les valeurs en fonction des coches
if (tpeCochee) {
champsAAdditionner[0].valeur = 366; // "OUI CGFS"
champsAAdditionner[1].valeur = 39; // "OUI CTJ"
} else if (eiCochee) {
champsAAdditionner[0].valeur = 532; // "OUI CGFS"
champsAAdditionner[1].valeur = 59; // "OUI CTJ"
} else if (societeCochee) {
champsAAdditionner[0].valeur = 615; // "OUI CGFS"
champsAAdditionner[1].valeur = 82; // "OUI CTJ"
}
// Initialiser la somme
var somme = 0;
// Parcourir la liste des champs à additionner
for (var i = 0; i < champsAAdditionner.length; i++) {
// Récupérer le champ
var champ = this.getField(champsAAdditionner[i].nom);
// Vérifier si la case est cochée
if (champ && champ.isBox && champ.value === "On") {
// Ajouter la valeur associée du champ à la somme
somme += champsAAdditionner[i].valeur;
}
}
// Mettre à jour le champ de résultat Total_Exo
var champTotalExo = this.getField("Total_Exo");
if (champTotalExo) {
champTotalExo.value = somme;
}
}
En ouvrant le débogueur j'obtiens ce message
"TypeError: this.getField(...) is null
1:AcroForm:Total_Cloture_Ref:Calculate"
Si le code n’est vraiment pas clair, je pourrai vous envoyer le fichier PDF concerné.
Je suis un peu largué…
Je vous remercie d'avance si vous pouvez m'éclairer.
Windows / Chrome 119.0.0.0