abracadabraPDF › Forums › PDF – Général › Champ conditionnel – Résolu
- Ce sujet est vide.
- CréateurSujet
- 29 décembre 2009 à 11:48 #43753
All
InvitéBonjour,
Je suis un nouveau venu sur ce forum que je viens de découvrir et qui, je l’espère me permettra de venir à bout de mon problème que voici.
J’ai créé un formulaire avec Acrobat 5. C’est le programme que j’avais déjà acheté il y a quelques années et comme je n’ai pas beaucoup de formulaires à faire, l’achat d’une nouvelle version me semble prohibitif.J’ai créé un champ nommé « Révision » qui devrait contenir une date. J’ai aussi plusieurs champs nombres qu’on nommera « Assurance1 », « Assurance2 », « Assurance3 ». J’ai aussi un champ « Total » , qui calcule la somme des champs « Assurance* ». J’aimerais que le champ « Total » ne calcule la somme que s’il y a une inscription à l’intérieur du champ « Révision ». Sinon, il demeurerait caché.
J’espère avoir été assez clair et je vous remercie à l’avance pour votre aide.
À vous lire,All
- CréateurSujet
- AuteurRéponses
- 29 décembre 2009 à 20:37 #50396
MerlinMaître des clésBonjour et bienvenue !
Je ne sais pas si j’ai tout bien compris au problème mais il faut voir ma réponse dans le fichier PDF ci-joint, ce sera plus simple car il contient un exemple.

[attachment deleted by admin]
30 décembre 2009 à 11:42 #50397All
InvitéBonjour Merlin,
Vous êtes bien l’enchanteur car il semble bien que votre réponse corresponde parfaitement à ma demande.
J’ai téléchargé votre fichier et l’ai visionné. Tout semble correspondre. Je vais incorporer le script à mon formulaire et vous en donnerai des nouvelles très bientôt.Encore un IMMENSE merci, :extra: vous me tirez une épingle du pied.
All
30 décembre 2009 à 12:39 #50398All
InvitéRe-bonjour,
J’ai adapté votre script à mon formulaire. C’est probablement de ma faute car dans ma question, j’avais simplifié l’exemple pour une meilleure compréhension. En fait, j’ai 16 « champ_assurance » , ce qui, en principe ne devrait pas poser problème.
J’ai donc modifié en conséquence le nombre de variables, ce qui m’a donné le script suivant:
//mise en variable de la valeur des champs
a = this.getField(« AssPro.1 »).value;
b = this.getField(« AssPro.2 »).value;
c = this.getField(« AssPro.3 »).value;
d = this.getField(« AssPro.4 »).value;
e = this.getField(« AssPro.5 »).value;
f = this.getField(« AssPro.6 »).value;
g = this.getField(« AssPro.7 »).value;
h = this.getField(« AssPro.8 »).value;
i = this.getField(« AssPro.9 »).value;
j = this.getField(« AssPro.10 »).value;
k = this.getField(« AssPro.11 »).value;
l = this.getField(« AssPro.12 »).value;
m = this.getField(« AssPro.13 »).value;
n = this.getField(« AssPro.14 »).value;
o = this.getField(« AssPro.15 »).value;
p = this.getField(« AssPro.16 »).value;//calcul de la somme
e = a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p;//condition si champ-révision ne contient rien
if (this.getField(« texte604.0 »).value !== « »)
{
//la valeur du champ devient egale a la somme
event.value = e;
//le champ devient visible (optionnel)
event.target.hidden = false
}
//condition si champ-révision contient quelque chose
else
{
//la valeur du champ devient egale a rien
event.value = « »;
//le champ devient invisible (optionnel)
event.target.hidden = true
}
Il se produit toutefois un chose bizarre: si je complète tous les champs « champ_assurance », le calcul se fait parfaitement. Si j’efface un des champs, j’obtiens un total complètement farfelu. Dans votre exemple, si j’efface le « 3 », j’obtiens 34 comme total (1+2 et 4), si j’efface le 2 seulement, j’obtiens 134 (1 et 3 et 4) ??? J’en perds mon Latin.Je vous remercie beaucoup de vous pencher sur ce cas. J’ai bien confiance car le script fonctionne en tout cas.
J’ai hâte de vous lire,
All
31 décembre 2009 à 01:16 #50399
MerlinMaître des clésOui, s’agissant d’un bête fichier de test/démo je n’avais pas vérifié que les calculs se fassent bien à partir de nombres et non pas d’autre chose. Ce qui est le cas lorsque l’un des champs jaunes ne contient rien : auquel cas le « calcul » s’effectue en ajoutant les caractères les uns derrière les autres et non pas de façon mathématique.
C’est ce qui se produit lorsque l’un des champs jaune est vide.Donc, pour éviter qu’une entrée soit égale à rien (donc égale à autre chose qu’un nombre) j’ai ajouté un « script de validation personnalisé » dans les champs jaunes. Ces deux lignes de script suffisent à transformer un éventuel « rien » (si l’utilisateur utilise la touche effacement) en zéro. Et comme ces champs jaunes sont au format « nombre », cela suffit à s’assurer que la valeur des champs jaunes sera bien un nombre dans tous les cas.
Ce qui permet un calcul sans erreur.
:soleil:Les deux lignes de script (4 avec les commentaires) :
Code://si valeur du champ est egale a rien
if (event.value == « »)
//alors valeur du champ devient zero
{event.value = 0;}(Edit : fichier joint supprimé, voir plus loin)
31 décembre 2009 à 12:17 #50400All
InvitéBonjour Merlin,
Un GRAND, GRAND, GRAND MERCI! :bravo: :contentdance: :soleil:
Vous faites ma journée et même ma fin d’année 2009 dans la joie.
Je n’ai pas pu ouvrir le fichier .PDF mais j’ai recopié l’inscription que vus aviez mise dans votre message et l’ai insérée dans le premier fichier .PDF test que vous aviez mis. Tout fonctionne à merveille. Je crois que c’est ma version d’Acrobat, la 5, qui est trop vieille.
Une chance qu’il y a des gens comme vous pour aider les autres qui, comme moi, veulent bien se lancer dans de nouvelles expériences mais qui, parfois , se buttent à leurs limites.
Je vous souhaite une merveilleuse année 2010,
Bien à vous,
All
P.S. Félicitations pour ce forum extrèmement utile31 décembre 2009 à 12:45 #50401
MerlinMaître des clésJ’ai oublié « d’optimiser » le PDF pour Acrobat 5, le voici en version 1.4 (ci-joint).
Merci pour les remerciements, et bonne année 2010 !
[attachment deleted by admin]
31 décembre 2009 à 15:22 #50402All
InvitéBonjour Merlin,
Merci pour le fichier « optimisé ».
J’ai copié le script dans tous les champs « AssPro. » . et cliqué sur OK. Toutefois, le champ n’affiche pas immédiatement « 0 », je dois entrer un nombre, puis l’effacer pour qu’il indique « 0 » dans chacun des champs. Si j’entre des nombres dans des champs non contigus sans avoir fait la manipulation, j’obtiens encore les nombres à la suite dans le champ Total.
J’ai peut-être manqué quelquechose ?Désolé, j’ai crié victoire un peu trop tôt je crois,
All
1 janvier 2010 à 11:46 #50403
MerlinMaître des clésJe ne comprend pas bien, regarde dans mon fichier d’exemple : de fait il n’est pas possible que l’un des champs jaunes ne contienne rien.
Je suppose que tu n’as pas placé le script de validation au bon endroit…
??: :doute:1 janvier 2010 à 12:42 #50404All
InvitéBonjour Merlin,
Désolé pour les inconvénients.
J’ai bien copié les scripts personnalisés sous l’onglet « Validation » de chaque champ (comme pour les jaunes pour vous). Après avoir copié le script et cliqué sur OK, si j’appuie sur la main de sélection, la ligne reste vierge. Si j’y inscrit un nombre puis « enter », le nombre s’affiche; si j’efface ce nombre et « enter », alors là, elle affiche 0,00 et le script fonctionne alors parfaitement par la suite.
On dirait que le script ne s’active pas tout seul.
Dans votre exemple, des chiffres avaient déjà été entrés je crois, c’est peut-être pourquoi le script était déjà activé. Ou bien c’est une amélioration non présente dans Acrobat 5.
C’est peut-être une question de sémentique car j’ai entré des « 0 » dans tous les champs et maintenant, le fichier fonctionne parfaitement.
Alors, si vous désirez en rester là, y’a pas de problème, vous m’avez déjà très bien aidé.Au plaisir de vous lire,
All
2 janvier 2010 à 10:44 #50405
MerlinMaître des clésC’est un comportement normal : s’agissant d’un script de validation, cette validation ne peut intervenir qu’au moment où le champ est utilisé (avec l’outil Main).
Mais ce ne devrait pas être un problème pour l’utilisateur final, car une fois que les champs ont affiché un chiffre ils ne peuvent plus afficher autre chose.
Une autre bonne idée pourrait être d’attribuer « zéro » comme valeur par défaut de ces champs, pour éviter tout problème potentiel en cas de réinitialisation des champs de formulaire.
:soleil:
2 janvier 2010 à 19:32 #50406All
InvitéBonjour Merlin,
Encore une fois, un grand merci pour tous ces renseignements.
Je sais maintenant où trouver un expert en PDF, un format de fichier fort pratique.
Au plaisir,
All
- AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.
