Donnez vie à vos documents numériques !
 

Mettre un deuxième script

abracadabraPDF Forums PDF – Général Mettre un deuxième script

  • Ce sujet contient 5 réponses, 3 participants et a été mis à jour pour la dernière fois par ecluse105, le il y a 9 mois.
  • Créateur
    Sujet
  • #73125
    ecluse105
    Participant

    Bonjour, j’ai un script dans un champ nommé (distance) comme ci-dessous.

    function calculateTime() {
    var distance = parseFloat(this.getField(“distance”).value);
    var totalKM = parseFloat(this.getField(“TotalKM”).value) || 0; // Obtenir la valeur existante ou initialiser à 0
    var averageSpeed = parseFloat(this.getField(“average_speed”).value);

    // Ajouter la valeur du champ “TotalKM” à la distance saisie
    distance += totalKM;

    if (!isNaN(distance) && !isNaN(averageSpeed)) {
    // Calculer le temps en heures
    var timeInHours = distance / averageSpeed;

    // Heures, minutes et secondes séparées
    var hours = Math.floor(timeInHours);
    var remainingMinutes = (timeInHours – hours) * 60;
    var minutes = Math.floor(remainingMinutes);
    var seconds = Math.round((remainingMinutes – minutes) * 60);

    // Afficher le résultat dans les champs du formulaire
    this.getField(“temps_heures”).value = hours;
    this.getField(“temps_minutes”).value = minutes;
    this.getField(“temps_secondes”).value = seconds;

    // Mettez à jour le champ “TotalKM” avec la nouvelle distance totale
    this.getField(“TotalKM”).value = distance;
    } else {
    // Effacez les champs si la distance ou la vitesse moyenne n’est pas valide
    this.getField(“temps_heures”).value = “”;
    this.getField(“temps_minutes”).value = “”;
    this.getField(“temps_secondes”).value = “”;
    }
    }

    // Attachez la fonction calculateTime au champ de formulaire “distance”
    this.getField(“distance”).setAction(“OnBlur”, “calculateTime();”)

    Mais je voudrais au début de ce script rajouté un script qui me permettrais de récupérer la valeur d’un champ nommé (Total) dont la valeur s’ajouterais au champ (distance), quel est la procédure.

Affichage de 5 réponses de 1 à 5 (sur un total de 5)
  • Auteur
    Réponses
  • #73126
    Merlin
    Maître des clés

    Bonjour

     

    Remplace la 2e ligne du script par :

    var distance = Number(this.getField("distance").value) + Number(this.getField("total").value);

     

    Par ailleurs c’est toujours une mauvaise idée de donner le même nom à un champ et à une variable, c’est source d’erreurs.

    #73127
    bebarth
    Maître des clés

    bonsoir,
    Ne serait-ce point la même demande que ce post :

    Code pour calculer heures, minutes, secondes

    @+
    😎

    #73128
    ecluse105
    Participant

    Cela ne fonctionne pas, en réalité j’ai un premier script de calcul comme ci-dessous

    event.value = this.getField(“Depart”).value-this.getField(“Arrivee”).value;

    // Si champ 0 alors champ vide
    if (event.value==0) event.value = “” ;

    et je voudrais le rajouter au dessus de ce script ci-dessous

    function calculateTime() {
    var distance = parseFloat(this.getField(“distance”).value);
    var totalKM = parseFloat(this.getField(“TotalKM”).value) || 0; // Obtenir la valeur existante ou initialiser à 0
    var averageSpeed = parseFloat(this.getField(“average_speed”).value);

    // Ajouter la valeur du champ “TotalKM” à la distance saisie
    distance += totalKM;

    if (!isNaN(distance) && !isNaN(averageSpeed)) {
    // Calculer le temps en heures
    var timeInHours = distance / averageSpeed;

    // Heures, minutes et secondes séparées
    var hours = Math.floor(timeInHours);
    var remainingMinutes = (timeInHours – hours) * 60;
    var minutes = Math.floor(remainingMinutes);
    var seconds = Math.round((remainingMinutes – minutes) * 60);

    // Afficher le résultat dans les champs du formulaire
    this.getField(“temps_heures”).value = hours;
    this.getField(“temps_minutes”).value = minutes;
    this.getField(“temps_secondes”).value = seconds;

    // Mettez à jour le champ “TotalKM” avec la nouvelle distance totale
    this.getField(“TotalKM”).value = distance;
    } else {
    // Effacez les champs si la distance ou la vitesse moyenne n’est pas valide
    this.getField(“temps_heures”).value = “”;
    this.getField(“temps_minutes”).value = “”;
    this.getField(“temps_secondes”).value = “”;
    }
    }

    // Attachez la fonction calculateTime au champ de formulaire “distance”
    this.getField(“distance”).setAction(“OnBlur”, “calculateTime();”)

    Pour qu’il puisse faire ma valeur de calcul en premier et exécuter le second script

    #73129
    Merlin
    Maître des clés

    “Cela ne fonctionne pas”

    Qu’est-ce qui ne fonctionne pas et pourquoi ?

    Il n’y a que des magiciens sur ce forum, mais aucun devin.

    #73130
    ecluse105
    Participant

    Bonjour, voici le formulaire dans le champ (total) du dessus c’est le (Total en kilomètres) qui par la suite seras un calcul d’une différence entre deux choix de kilométrage. En dessous dans le champ (distance) je voudrais que ce champ (distance prenne la valeur du champ (total) automatiquement, car en bas cela me donne avec la vitesse moyenne 9 Km  heures un résultat en Heures, Minutes et secondes. j’ai mis la ligne de code que vous m’avez indiqué représentée ci-dessous

    var distance = Number(this.getField(“distance”).value) + Number(this.getField(“total”).value);

    Mais cela fonctionner une fois et si je fais un reset avec mon bouton, cela ne fonctionne plus

     

    Attachments:
    You must be logged in to view attached files.
Affichage de 5 réponses de 1 à 5 (sur un total de 5)
  • Vous devez être connecté pour répondre à ce sujet.