IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Javascript sous Scribus pour PDF


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Secrétaire
    Inscrit en
    Janvier 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Secrétaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Javascript sous Scribus pour PDF
    Bonjour,
    je dois faire un document PDF avec scribus.

    J'ai besoin de mettre des champs calculés.

    Quand je met un calcul simple d'un champ avec le contenu d'un autre pas de soucis.

    Par contre quand j'incorpore des conditions comme ci-dessous cela ne fonctionne pas et je ne comprend pas pourquoi:
    (SeulChageEnfant et ConjointSansEmploi sont des cases à cocher , DroitDemiJouneesConjoint et NbrDemiJouneesTravaillees sont des champs à remplir, DroitDemiJouneesDemandeur est le champs résultat)

    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var CalculNormal=this.getField('NbrDemiJouneesTravaillees').value+2;
    var CalculSeul=(this.getField('NbrDemiJouneesTravaillees').value*2)+4);
    var CalculConjointMoins=((this.getField('NbrDemiJouneesTravaillees').value*2)+4)-this.getField('DroitDemiJouneesConjoint').value;
     
    if (this.getField('SeulChageEnfant').value=='Yes' || this.getField('ConjointSansEmploi').value=='Yes' || this.getField('DroitDemiJouneesConjoint').value==0) this.getField('DroitDemiJouneesDemandeur').value=CalculSeul;
     
    if (this.getField('DroitDemiJouneesConjoint').value<CalculNormal) this.getField('DroitDemiJouneesDemandeur').value=CalculConjointMoins;
     
    if (this.getField('DroitDemiJouneesConjoint').value>=CalculNormal) this.getField('DroitDemiJouneesDemandeur').value=CalculNormal;

    Je dois faire une erreur bête mais je ne vois pas laquelle.
    Pouvez vous m'aider svp.
    D'avance merci.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- commence par poster dans le bon forum...
    Tu auras plus de chance qu'on te réponde.
    (message déplacé dans le forum JavaScript)

    2- Je ne connais pas Scribus (?).
    Ils n'ont pas une doc ?

    J'ai trouvé ça en cherchant sur DVP : Tutoriel Scribus

    Cela dit... tu es sûr que ça utilise JavaScript ?
    Dernière modification par Invité ; 11/09/2018 à 12h19.

  3. #3
    Candidat au Club
    Homme Profil pro
    Secrétaire
    Inscrit en
    Janvier 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Secrétaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut réponse
    Merci d'avoir déplacé, je pensais pourtant lavoir mis dans JavaScript. Je ne dois pas être bien réveillé

    Oui scribus permet de mettre des champs, case à cocher, etc... pour réaliser des docs pdf et donc aussi de faire des scripts en JavaScript comme d'autre documents pdf utilisés dans l'administration entre autre...
    J'ai bien sûr été voir dans les tutos et doc sur scribus avant de poster ici mon problème. J’utilise couramment du JavaScript dans les champs pour faire du calcul simple ou pour préremplir des champs en concaténant mais je n’avais jamais mis des calculs avec conditions. Dans mon exemple ci-dessus rien ne se passe.

  4. #4
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 888
    Points : 6 632
    Points
    6 632
    Par défaut
    Un peu de mise en forme ne fait pas de mal dans un script, ça permet d'y voir plus clair, d'éviter de calculer/de tester deux fois la même chose et de trouver les éventuelles erreurs, suggestion:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var CalculNormal = this.getField('NbrDemiJouneesTravaillees').value + 2;
    var CalculSeul = this.getField('NbrDemiJouneesTravaillees').value * 2 + 4;
    var CalculConjointMoins = CalculSeul - this.getField('DroitDemiJouneesConjoint').value;
     
    if ( this.getField('SeulChageEnfant').value == 'Yes' || // SeulChargeEnfant ?
         this.getField('ConjointSansEmploi').value == 'Yes' ||
         this.getField('DroitDemiJouneesConjoint').value == 0 )
        this.getField('DroitDemiJouneesDemandeur').value = CalculSeul;
    else if ( this.getField('DroitDemiJouneesConjoint').value < CalculNormal )
        this.getField('DroitDemiJouneesDemandeur').value = CalculConjointMoins;
    else
        this.getField('DroitDemiJouneesDemandeur').value = CalculNormal;
    voire même:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var CalculNormal = this.getField('NbrDemiJouneesTravaillees').value + 2;
    var CalculSeul = this.getField('NbrDemiJouneesTravaillees').value * 2 + 4;
    var CalculConjointMoins = CalculSeul - this.getField('DroitDemiJouneesConjoint').value;
     
    if ( this.getField('SeulChageEnfant').value == 'Yes' || // SeulChargeEnfant ?
         this.getField('ConjointSansEmploi').value == 'Yes' ||
         this.getField('DroitDemiJouneesConjoint').value == 0 )
        this.getField('DroitDemiJouneesDemandeur').value = CalculSeul;
    else
        this.getField('DroitDemiJouneesDemandeur').value = this.getField('DroitDemiJouneesConjoint').value < CalculNormal ? CalculConjointMoins
                                                                                                                          : CalculNormal;
    Le nom de ton champ SeulChageEnfant me semble suspect.

  5. #5
    Candidat au Club
    Homme Profil pro
    Secrétaire
    Inscrit en
    Janvier 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Secrétaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut réponse
    J'avais bien-sûr mis au préalable les "else if" mais cela ne changeait rien et je me posait la question si scribus les acceptaient au vu des exemples mis dans les docs. J'avais aussi aligné et commenté comme je le faisait avant mais là aussi je me posait la question si cela ne perturbait pas scribus. Je viens de recopier ton script modifié et cela n'a aucun effet.

    SeulChargeEnfant comme je lai précisé au début est le nom que j'ai attribué à une case à cocher.

  6. #6
    Candidat au Club
    Homme Profil pro
    Secrétaire
    Inscrit en
    Janvier 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Secrétaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut resolu
    Après un bon café je viens de me rendre compte que j'avais mis deux ; en fin de script sur Scribus.... juste çà.... et aucune remontée d'erreur. Je me doutais que çà devait être une bêtise toute simple. je suis désolé de vous avoir fait perdre votre temps pour une erreur pareil!!!! 15 ans que j'ai pas programmé mes neurones ont dû être sacrément dégradés! Bref.
    En tout cas merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. PDF + javascript sous LMDE
    Par LeHibou2 dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 12/10/2012, 08h45
  2. Javascript pour PDF formulaire case obligatoire
    Par nekosan3 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 22/06/2011, 10h55
  3. ajouter sous-forums pour javascript et plugins 3d (unity, etc) ?
    Par Camel LowFilter dans le forum Jeux web
    Réponses: 1
    Dernier message: 28/08/2010, 12h30
  4. [JavaScript] Pour débugger vos scripts JavaScript sous IE et FF
    Par FremyCompany dans le forum Contribuez
    Réponses: 4
    Dernier message: 02/11/2009, 11h59
  5. javascript sous IE 7 pour un affichage dynamique d'une image
    Par ohhh.gringo dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/05/2007, 16h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo