Donnez vie à vos documents numériques !
 

Calcul complexe

abracadabraPDF Forums PDF – Général Calcul complexe

  • Créateur
    Sujet
  • #73595
    Big_Lou
    Participant

    Bonjour à tous,

    J’ai un fichier avec des calculs à faire en sélectionnant plusieurs cases différentes et choix à faire.

    J’arrive à faire le total des mois (n0mbre de parutions) Mais pour le total des prix c’est tout autre.

    Si la personne choisis le format désiré (il y en a 5)  et le nombre de parutions, le prix diffère selon les choix.

    Bref, je vous place la grille tarifaire et le fichier pdf pour la calcul.

    Un grand merci à tous à l’avance.

    Attachments:
    You must be logged in to view attached files.
Affichage de 8 réponses de 1 à 8 (sur un total de 8)
  • Auteur
    Réponses
  • #73598
    Merlin
    Maître des clés

    Bonjour

     

    Ce n’est pas les calculs qui sont complexes, c’est la quantité de tarifs possibles à prendre en compte.

    Je pourrais te donner une réponse avec une méthode mais ce ne serait pas vraiment une “bonne” réponse.

    Je vais donc d’abord attendre que quelqu’un qui s’y connaisse en array te propose quelque chose de mieux.

     

    En attendant j’attire ton attention sur une bonne idée que tu as eu mais que tu n’exploites pas à fond :

    Le champ “total.parutions” calcule le total des champs nommés “mois.quelquechose“.

    Comme tu as eu la bonne idée de mettre un point dans leur nom et donc de créer une relation parent-enfants il est inutile de sélectionner tous les champs dont tu veux additionner la valeur, il suffit de sélectionner le nom du champ parent (voir capture).

    Quand il n’y a que 4 champs à additionner ça passe inaperçu mais quand il y en a 40 ou 400 ce n’est pas le même plaisir.

    Voir l’article qui explique tout (2e partie) : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/duplication-rapide-de-champs-de-formulaire/

     

     

    Attachments:
    You must be logged in to view attached files.
    #73600
    bebarth
    Maître des clés

    bonjour,
    On peut récupérer les tarifs avec effectivement soit une table ou un fichier .csv en pièce jointe. J’hésite quelle est la meilleure solution…
    Si je comprends bien le tarif, les pages intérieures obligatoirement en niveaux de gris tandis que la couleur est réservée en première et quatrième de couverture ! Correct ?

    Sur ton fichier, on peut choisir plusieurs formats pour une parution, c’est normal ? Si non, du coup il faudrait plutôt mettre des boutons radio. Idem pour “256 tons GRIS” et “COULEUR”…

    La première page est-elle automatiquement une pleine page ??? et pour la quatrième de couverture, y a-t-il différents formats ?

    @+
    😎

    J’avais pas bien lu !

    • Cette réponse a été modifiée le il y a 11 mois et 4 semaines par bebarth.
    #73602
    Big_Lou
    Participant

    Merci je vais attendre voir si quelqu’un trouvera une solution 🙂

    #73603
    Big_Lou
    Participant

    Si je comprends bien le tarif, les pages intérieures obligatoirement en niveaux de gris tandis que la couleur est réservée en quatrième de couverture ! Correct ?

    Oui!

    En fait, c’est sur la dernière page que ça peut être en couleur.

    Merci de ta réponse.

    • Cette réponse a été modifiée le il y a 11 mois et 4 semaines par Big_Lou.
    #73605
    bebarth
    Maître des clés

    Je regarde ça ce soir ou demain…

    @+
    😎

    #73606
    Big_Lou
    Participant

    Un énorme merci 🙂

    #73609
    bebarth
    Maître des clés

    bonsoir,
    … c’était donc plutôt “demain soir” !!! Je suis un retraité overbooké comme tous les retraité ! 😉
    Voici les différents scripts pour ton document et le fichier en pièce jointe. Je te laisse les étudier et n’hésite pas à me demander ce que tu ne comprends pas. J’ai choisi de mettre les différents prix dans une table de tables “tarifs”. Je pense que l’option pour un fichier .csv en pièce jointe aurait été plus appropriée si on avait eu beaucoup plus de données.
    Tu vérifies si tout se passe comme tu le souhaites et tu me dis.

    // init en Script de document
    var tarif=[
    [ // N&B
    [10,15,25,35], // Carte d'affaire
    [15,25,35,45], // 1/4 de page
    [25,40,55,80], // 1/3 de page
    [40,70,100,130], // 1/2 page
    [100,150,200,250] // Pleine page
    ],
    [ // Quadri
    [20,30,40,60], // Carte d'affaire
    [30,50,70,90], // 1/4 de page
    [50,80,110,160], // 1/3 de page
    [80,140,200,275], // 1/2 page
    ],
    ];
    function options(indice) {
    for (var i=0; i<=4; i++) {
    if (i!=indice) this.getField("option."+i).value="Off";
    }
    }

    // totalPrix
    var couleur=-1;
    if (this.getField("couleur.gris").value!="Off") var couleur=0;
    else if (this.getField("couleur.couleur").value!="Off") var couleur=1;
    var format=-1;
    for (var i=0; i<=4; i++) {
    if (this.getField("option."+i).value!="Off") {
    var format=i;
    break;
    }
    }
    var nb=0;
    for (var i=0; i<=3; i++) {
    if (this.getField("mois."+i).value!="Off") nb++;
    }
    this.getField("total.parutions").value=nb;
    if (couleur>-1 && format>-1 && nb) event.value=tarif[couleur][format][nb-1];
    else event.value=0;
    if (this.getField("Mois").value!="Off") event.value=Number(event.value)+this.getField("Mois").value*25;
    if (event.value==0) event.value="";

    // couleur.gris
    if (event.target.value!="Off") {
    this.getField("couleur.couleur").value="Off";
    this.getField("option.4").display=display.visible;
    }

    // couleur.couleur
    if (event.target.value!="Off") {
    this.getField("couleur.gris").value="Off";
    this.getField("option.4").value="Off";
    this.getField("option.4").display=display.hidden;
    } else this.getField("option.4").display=display.visible;

    // option
    options(event.target.name.substr(event.target.name.indexOf(".")+1));

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    #73612
    Big_Lou
    Participant

    Pas de soucis je suis aussi retraité 😉

    Un énorme merci, avec vous j’apprends de plus en plus.

    Encore merci 🙂

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