Donnez vie à vos documents numériques !
 

Double valeur dans un champ. – RÉSOLU

abracadabraPDF Forums PDF – Général Double valeur dans un champ. – RÉSOLU

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #44041
    lemiran
    Membre

    Bonjour à tous,

    Pour mon premier post sur ce forum, j’ai une belle colle (pour mon niveau  :siffle: ).

    j’ai les champs : “prix-HT”, “TVA” et “prix-TTC”.
    Le calcul se fait facilement en multipliant “prix-HT” avec la valeur d’un champ caché (1,196).

    Ce que je souhaiterais c’est que si on saisit plutôt la valeur dans le champ “prix-TTC” le calcul puisse se faire dans l’autre sens et remplir automatiquement le champ “prix HT”

    Merci énormément pour votre aide.

Affichage de 7 réponses de 1 à 7 (sur un total de 7)
  • Auteur
    Réponses
  • #52260
    Lionel
    Membre

    Bonjour,

    Pour passer du TTC au HT, il suffit cette fois de multiplier par 0,8361204 (soit 1/1,196).

    Il n’est pas forcément utile de recourir à un champ caché pour insérer la valeur.

    Lionel :bonjour:

    #52261
    alex
    Participant

    La maquette jointe montre comment résoudre ce problème.
    Si on saisit un montant HT, le montant TTC est calculé, si on saisit un montant TTC le montant Ht est calculé.
    La validation d’un des champs lance le programme ci-dessous, la variable TTC détectant au préalable la présence de la souris dans le champ “PrixTTC” (TTC=true) ou dans le champ “PrixHT” (TTC=false)  :

    function Calcul()
    {
    console.println(“Action utilisateur”);
    if(this.event.target.name==”PrixHT”&TTC)
    {
    console.println(“Calcul du montant TTC”);
    this.getField(“PrixTTC”).value=this.event.value*coefTVA;
    }
    if(this.event.target.name==”PrixTTC”&!TTC)
    {
    console.println(“Calcul du montant HT”);
    this.getField(“PrixHT”).value=this.event.value/coefTVA;
    }
    }

    Le script d’ouverture de page fixe le paramètre de calcul de la TVA, initialise le formulaire, et autres détails sans importance.
    console.clear();
    coefTVA=1.196;
    TTC=true;
    this.resetForm();
    this.getField(“LibellePrixTTC”).value=”Montant TTC”;
    this.getField(“LibellePrixHT”).value=”Montant HT”;

    Lorsque la souris entre dans le champ “PrixHT”, TTC passe à true:
    TTC=true;
    console.println(“Preparation calcul TTC…”);
    this.getField(“LibellePrixHT”).fillColor=color.white;
    this.getField(“LibellePrixTTC”).fillColor=color.yellow;

    Lorsque la souris entre dans le champ “PrixTTC”, TTC passe à false:
    TTC=false;
    console.println(“Preparation calcul HT…”)
    this.getField(“LibellePrixHT”).fillColor=color.yellow;
    this.getField(“LibellePrixTTC”).fillColor=color.white;

    [attachment deleted by admin]

    #52262
    Merlin
    Maître des clés

    Salut,

    depuis Acrobat 8 on peut utiliser les notations simplifiées dans l’onglet “Calcul”.

    Ce qui nous donne pour le champ TVA :

    prixHT * 0.196

    pour le champ TTC :

    prixHT * 1.196

    et pour le champ HT :

    prixTTC * 0.8361204

    Cependant, la notation simplifiée a des exigences :

    – pas de points ni d’espaces dans les noms de champs

    – bien faire attention à utiliser un point, et non pas une virgule, pour séparer les décimales (à l’américaine, donc).
    :bonjour:

    Evidemment, cette méthode brute de décoffrage n’a pas l’élégance et les contrôles de celle d’Alex.

    :Smiley03:

    #52263
    alex
    Participant

    Cette méthode n’est pas utilisable ici car le calcul doit fonctionner dans les deux sens:

    • Calcul TTC si action sur HT
    • Calcul HT si action sur TTC
    • [/list]

    #52264
    alex
    Participant

    Maquette avec champ pour la TVA.
    On pourrait aussi calculer les montant HT tet TTC à partir de la saisie de la TVA !

    [attachment deleted by admin]

    #52265
    Merlin
    Maître des clés

    Cette méthode n’est pas utilisable ici car le calcul doit fonctionner dans les deux sens:

    Oups !
    :oh:

    #52266
    alex
    Participant

    1-Le script de calcul est au niveau du document:
    Sous Acrobat 8, 9 :
    Options avancées>Traitement du document>Scripts JavaScript. Saisir le nom du script (Cacul) puis “Ajouter”. Coller ici le script compris entre les {}.

    function Calcul()
    {
    console.println(“Action utilisateur”);
      if(this.event.target.name==”PrixHT”&TTC)
      {
      console.println(“Calcul du montant TTC”);
      this.getField(“PrixTTC”).value=this.event.value*coefTVA;
      }
      if(this.event.target.name==”PrixTTC”&!TTC)
      {
      console.println(“Calcul du montant HT”);
      this.getField(“PrixHT”).value=this.event.value/coefTVA;
      }
    }

    Sous Acrobat X:
    Outils>JavaScripts>Scripts JavaScript du document> Saisir le nom du script (Cacul) puis “Ajouter”. Coller ici le script compris entre les {}.

    2-Ce script (fonction) est lancé par l’évènement de validation du champ “PrixHT” ou “PrixTTC”.
    Sous Acrobat 8, 9 :
    Formulaires>Ajouter ou modifier des champs.
    Clic-Droit sur le champ>Propriétés>Onglet Validation>
    Cocher “Exécuter le script de validation personnalisé” puis “Modifier” pour saisir:
    Calcul();

    Sous Acrobat X :
    Outils>Formulaires>Modifier.
    Clic-Droit sur le champ>Propriétés>Onglet Validation>
    Cocher “Exécuter le script de validation personnalisé” puis “Modifier” pour saisir:

    Calcul();

    Pour le champ “PrixHT”, Actions>Souris entrée>Lancer un JavaScript saisir le script suivant:

    TTC=true;
    console.println(“Preparation calcul TTC…”);
    this.getField(“LibellePrixHT”).fillColor=color.white;
    this.getField(“LibellePrixTTC”).fillColor=color.yellow;

    Pour le champ “PrixTTC”, Actions>Souris entrée>Lancer un JavaScript saisir le script suivant:

    TTC=false;
    console.println(“Preparation calcul HT…”)
    this.getField(“LibellePrixHT”).fillColor=color.yellow;
    this.getField(“LibellePrixTTC”).fillColor=color.white;

    3-Pour le script d’ouverture sous Acrobat 8,9,X, clic droit sur la vignette de la page puis Propriétés> Onglet Action>Lancer un JavaScript puis Ajouter:
    console.clear();
    coefTVA=1.196;
    TTC=true;
    this.resetForm();
    this.getField(“LibellePrixTTC”).value=”Montant TTC”;
    this.getField(“LibellePrixHT”).value=”Montant HT”;

Affichage de 7 réponses de 1 à 7 (sur un total de 7)
  • Vous devez être connecté pour répondre à ce sujet.