Donnez vie à vos documents numériques !
 

Mise en forme conditionnelle (couleur) de plusieurs champs

abracadabraPDF Forums PDF – Général Mise en forme conditionnelle (couleur) de plusieurs champs

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46428
    Prop0f0L
    Participant

    Bonjour, tout d’abord merci pour l’existence de ce forum qui m’a déjà beaucoup appris  :extra:

    J’utilise Adobe Acrobat Pro, et je cherche à écrire un script qui, lorsqu’on appuie sur un bouton, effectue une mise en forme conditionnelle à de nombreux champs sur mon document.

    Je m’explique :
    j’ai 256 champ de formulaire sous forme de liste déroulante avec comme choix « 0 », « 1 », « 2 » et « 3 ». Chaque champ est nommé respectivement « quantité1 », « quantité2 », « quantité3″…. « quantité256 ».
    J’aimerai que l’aspect des champs contenant « 0 » et « 3 », ne soit pas modifié, et que ceux contenant « 1 » ou « 2 » aient une couleur de fond jaune pâle.

    J’ai déjà bricolé ce code (peut-être farfelu mais qui fonctionne :doute: ) permettant d’appliquer cela, mais à un seul champ :

    f = this.getField(« quantité1 »);
    var mf = this.getField(« quantité1 ») ;
    if (mf.value > 0 && mf.value f.fillColor = [« RGB », 1, 0.92, 0.65] ;
    else {
    f.fillColor = [« T »] ;
    }

    Comment faire pour qu’en à peine quelques lignes, le code comprenne que je fais référence à tous les champs nommés « quantité(chiffre) » afin que les 256 champs soient traités ?
    Merci beaucoup pour votre aide :jerisjaune:

    Bonne journée,

    Yohan

Affichage de 7 réponses de 1 à 7 (sur un total de 7)
  • Auteur
    Réponses
  • #68189
    bebarth
    Maître des clés

    bonjour,
    A part te dire que nom des champs ne doivent pas contenir de caractères accentués, c’était presque ça !

    Code:
    for (var i=1; i    var mf = this.getField(« quantité »+i) ;
        if (mf.value > 0 && mf.value     else f.fillColor = [« T »] ;
    }

    @+
    :bonjour:

    #68190
    Prop0f0L
    Participant

    Merci beaucoup pour votre réponse rapide !
    Vous venez de participer à la création d’un document qui va grandement faciliter le travail des infirmiers prenant en charge des patients Covid d’un service de réanimation.
    Alors merci de la part de toute l’équipe !  :bravo: :bonjour:

    #68191
    bebarth
    Maître des clés

    …et si je peux encore aider, ce sera avec plaisir.N’hésite pas à me demander.
    @+
    :bonjour:

    #68192
    Prop0f0L
    Participant

    Merci .. Alors si ce n’est pas abuser de votre aide, j’ai encore une demande  :priere:

    Ce serait pour un bouton « réinitialiser le formulaire », j’ai vu qu’il n’y avait pas besoin de script car il existe la commande menu, mais j’aimerait une boite de dialogue demandant si « oui » ou « non » on souhaite vraiment réinitialiser le formulaire.

    Mais peut être dois-je créer un autre fil ?  :Smiley08:

    #68193
    bebarth
    Maître des clés

    A mettre en script d’action souris relâchée de ton bouton :

    Code:
    var resultatBouton=app.alert({
        cMsg: « Voulez-vous vraiment réinitialiser ce document ? »,
        cTitle: « Réinitialiser le formulaire »,
        nIcon: 2,
        nType: 2
    });
    if (resultatBouton==4) this.resetForm();

    @+
    :bonjour:

    #68194
    Prop0f0L
    Participant

    Bonjour Bebarth  :jerisjaune:

    Je reviens vers toi car le script que tu m’as confié ne fonctionne pas  :doute:
    Je n’ai aucun message d’erreur quand je valide le script, mais la mise en forme conditionnelle ne s’applique pas …
    J’ai bien vérifié que les noms des champs correspondent, et c’est bien le cas. Au passage je les ai renommés « nombre ».
    Ce qui me donne :

    for (var i=1; i    var mf = this.getField(« nombre »+i) ;    if (mf.value > 0 && mf.value

    En revanche, avec la méthode « un part un » (sans variable), ça fonctionne…
    Une idée pour m’éclairer s’il te plait ?  :priere:
    Merci !

    #68195
    bebarth
    Maître des clés

    bonjour,
    Il y avait effectivement une erreur, il ne faut pas écrire f.fillColor, mais mf.fillColor (2 fois).
    Donc :

    Code:
    for (var i=1; i    var mf = this.getField(« nombre »+i) ;
        if (mf.value > 0 && mf.value     else mf.fillColor = [« T »] ;
    }

    @+
    :bonjour:

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