Messages récents

: 1 2 3 4 ... 10
11
PDF - Général / Re : calculs conditionnels liste et tarif dégressif
« Dernier message par tofteuf le 14 août 2017 : 17:52 »
J'ai trouvé la solution ad-hoc,

en calcul dans le champs cible(10HT5), mon HT à 10 % pour une ligne en testant la valeur affecté à chaque item dans la liste :

// mise en variable du champs "menu déroulant de la liste 1 pour test 3 items
var f = this.getField("Liste1");
// teste le contenu de liste1
if (f.value == 1)
{event.target.value = this.getField("TP5HT").value*0.1;}
else
if (f.value == 2)
{event.target.value = this.getField("TP5HT").value*0.1;}
else
if (f.value == 3)
{event.target.value = this.getField("TP5HT").value*0.1;}
//sinon, si différent
else
{event.target.value = 0;}

et pour le taux à 20 % de la même ligne :

// mise en variable du champs "menu déroulant de la liste 1 pour test 3 items
var f = this.getField("Liste1");
// teste le contenu de liste1
if (f.value == 0)
{event.target.value = 0;}
else
if (f.value == 1)
{event.target.value = 0;}
else
if (f.value == 2)
{event.target.value = 0;}
else
if (f.value == 3)
{event.target.value = 0;}
//sinon, si différent
else
{event.target.value = this.getField("TP5HT").value*0.2;}
J'ai fait un peu de ménage dans les scripts et les calculs pour éliminer du superflu  :Ooops:

Tu dis "Par ailleurs je ne comprend pas l'intérêt de remplir toutes les listes suivantes à chaque fois qu'on clique sur une puisque leur contenu est statique…
 :doute:", là c'est moi qui ne comprend pas ta remarque  :Euuuh:

À chaque ligne de mon bon de commande, je dois pouvoir choisir un article (ex.: liste2) qui est classé par famille (tri primaire en liste1).
J'ai donc dupliqué ce binôme de champs pour commander jusqu'à 15 articles différents. La mise en tableau à chaque sélection de liste mère alourdi le process mais je n'ai pas trouvé d’autre solution. Encore merci.

12
PDF - Général / Re : calculs conditionnels liste et tarif dégressif
« Dernier message par Merlin le 14 août 2017 : 14:41 »
Dans ce cas c'est le champ liste qui devrait pousser les modifications vers le champ de texte, ça évitera des calculs inutiles.
Il faudrait utiliser un script de ce genre en script de validation :

var champCible = this.getField("10HT5");
// teste le contenu de la liste cliquée
if (event.value == "Jus de fruits BIO")
{champCible.value = 10;}
else if (event.value == "Jus de fruits - Eaux -Sodas")
{champCible.value = 10;}
else if (event.value == "Café et thé pour les mange-debout")
{champCible.value = 20;}
// sinon, si différent
else
{champCible.value = 0;}


Dans ton formulaire il y a beaucoup trop de scripts de partout pour que je comprenne tout.
Ci-joint un exemple avec juste les deux champs concernés et débarrassés des autres scripts.

Par ailleurs je ne comprend pas l'intérêt de remplir toutes les listes suivantes à chaque fois qu'on clique sur une puisque leur contenu est statique…
 :doute:
13
PDF - Général / Re : calculs conditionnels liste et tarif dégressif
« Dernier message par tofteuf le 14 août 2017 : 13:49 »
L'utilité de ce champs est la suivante : je dois calculer des montant de TVA différents à 10 et 20 %, ces champs intermédiaires (10HT5 est le premier à paramétrer) qui seront invisibles à l'utilisateur me permettront de reprendre les montant HT en fin de ligne en fonction du type de produit (les valeurs de la liste 1, déterminant si le produit est taxé à 10 ou 20 %) pour calculer les sommes de TVA à 10 et à 20 %. Si le choix 1, 2 ou 3 est sélectionné (le choix 0="Sélectionnez") dans liste 1, alors 10HT5 doit reprendre la valeur de TP5HT, dans tous les autre cas, la valeur 0 est appliquée à 10HT5.
14
PDF - Général / Re : Copie formulaire dans nouveau fichier
« Dernier message par Merlin le 14 août 2017 : 12:18 »
Bonjour Ludo qui m'a l'air bien fatigué aujourd'hui…  :geek:

Menu Fichier : Enregistrer sous (un autre nom)
C'est exactement la même chose que d'enregistrer une copie.
 :Smiley15:

On peut l'utiliser depuis un bouton via "Exécuter une commande de menu" ou via JavaScript :
app.execMenuItem("SaveAs");
15
PDF - Général / Re : Re : calculs conditionnels liste et tarif dégressif
« Dernier message par Merlin le 14 août 2017 : 12:12 »
merci pour cette mise au point, mais cela ne règle pas le fonctionnement du script en 10HT5 !
Ce script n'a rien à faire là et il ne sert à rien, et ce champ ne me parait pas très utile non plus (mais je ne connais pas tout le formulaire).
Si je comprend bien la logique le champ P5HT devrait calculer sa valeur en fonction du choix de la liste 1 et ensuite on devrait effectuer le calcul : prix * quantité.
16
PDF - Général / Re : calculs conditionnels liste et tarif dégressif
« Dernier message par tofteuf le 14 août 2017 : 11:28 »
 :Ooops:Merlin, merci pour cette mise au point, mais cela ne règle pas le fonctionnement du script en 10HT5 !
Je vais corriger les autres erreurs dupliquées de P5HT !
17
PDF - Général / Re : Re : calculs conditionnels liste et tarif dégressif
« Dernier message par Merlin le 14 août 2017 : 11:25 »
Je me disais par ailleurs qu'il serait judicieux de pouvoir paramétrer l'ordre des calculs mais je ne trouve pas de réglage en ce sens sur Adobe Arcobat 11 Pro (win)
Il y a bien longtemps que je n'ai pas utilisé Acrobat XI, tout ce dont je me souviens c'est que ça se trouve dans le panneau d'outils de formulaire.
Le plus simple est de chercher "ordre de calcul" dans l'Aide d'Acrobat Pro (menu ?), pour la version DC ça donne ça :
https://helpx.adobe.com/fr/acrobat/using/pdf-form-field-properties.html#set_the_calculation_order_of_form_fields
18
PDF - Général / Re : calculs conditionnels liste et tarif dégressif
« Dernier message par Merlin le 14 août 2017 : 11:15 »
Tu devrais utiliser la Console JavaScript : chaque changement de valeur provoque une liste d'erreurs longue comme une feuille A4…
==> https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/console-javascript-d-acrobat/

Dans le champ TP5HT on trouve ce script de calcul qui ne fonctionne pas :

// mise en variable des champs
var f = this.getField("Q5");
var g = this.getField("P5HT");
// teste si le champ PRIX HT est vide
if (g.value == null || f.value == "")
// s il est vide
event.value = 0;
//sinon, si pas vide
else
event.value = f.value * g.value


J'insiste encore sur l'importance de la syntaxe, des accolades, des parenthèses et du point-virgule qui marque la fin d'une instruction.
Le même script corrigé fonctionne correctement :

// mise en variable des champs
var f = this.getField("Q5");
var g = this.getField("P5HT");
// teste si le champ PRIX HT est vide
// s il est vide
if (g.value == null || f.value == "") {event.value = 0;}
//sinon, si pas vide
else {event.value = (f.value * g.value) * 1;}


Astuce : sur la dernière ligne j'ai mis le calcul entre parenthèses et je l'ai multiplié par 1, c'est un moyen de forcer JavaScript à considérer toutes les valeurs calculées comme des nombres et non pas comme des chaines de caractères, ce qui bloque parfois les calculs.
19
PDF - Général / Re : calculs conditionnels liste et tarif dégressif
« Dernier message par tofteuf le 14 août 2017 : 10:09 »
Bonjour à tous,

merci Merlin pour ce retour, j'ai utilisé ton script en prenant soin de corriger mes erreurs mais seule la valeur 0 apparait en 10HT5 quel que soit le choix fait en liste 1.
Je continue mes recherches, à toutes fins utiles, voici le lien pour DL la dernière version du projet. https://we.tl/EVdUUXKnWK

Je me disais par ailleurs qu'il serait judicieux de pouvoir paramétrer l'ordre des calculs mais je ne trouve pas de réglage en ce sens sur Adobe Arcobat 11 Pro (win)

Bonne journée à tous.
20
PDF - Général / Copie formulaire dans nouveau fichier
« Dernier message par ludo453 le 13 août 2017 : 11:32 »
Bonjour,

Je cherche comment programmer un bouton copie sur un formulaire pour le copier dans un nouveau fichier à remplir pour garder le premier en formulaire vierge ?

J'ai cherché mais pas trouvé, ou peut être j'ai loupé.

Merci
: 1 2 3 4 ... 10