Donnez vie à vos documents numériques !
 

Case texte grisée grâce à liste déroulante

abracadabraPDF Forums PDF – Général Case texte grisée grâce à liste déroulante

  • Créateur
    Sujet
  • #72511
    Yojo
    Participant

    Bonjour à tous ,

    je suis entrain de réaliser un formulaire avec des listes déroulantes.

    J’aimerais selon le mot choisi dans la liste que d’autres cases de textes se grisent dans mon formulaire.

    J’arrive à griser une case de texte grâce avec un bouton coche, mais je n’arrive pas à trouver ou voir comment il est possible de faire cela avec une liste déroulante

    Merci par avance pour votre aide

    Attachments:
    You must be logged in to view attached files.
Affichage de 14 réponses de 1 à 14 (sur un total de 14)
  • Auteur
    Réponses
  • #72515
    destylast
    Participant

    Ma question et pourquoi tu veux quelle se grise et ton fichier PDF serai bien  en pj.

    #72517
    Yojo
    Participant

    En fait il faut à chaque type d’infraction dans la liste déroulante qu’on ne puisse pas écrire sur certaines cases texte prédéfinies.

    LIEN pdf

    #72518
    Merlin
    Maître des clés

    Si tu veux une aide efficace il faudrait dire lesquelles.

    #72519
    Yojo
    Participant

    Voici le fichier source format excel lien excel

    Il faudrait que le formulaire PDF face exactement pareil merlin

    #72520
    bebarth
    Maître des clés

    bonjour,
    Il existe plusieurs façons de faire ça !
    En script de touches personnalisé du menu déroulant qui ne s’exécute que lors de la modification du menu :
    if (!event.willCommit) {
    if (event.changeEx=="Champs grisés") {
    this.getField("Text2").fillColor=color.gray;
    this.getField("Text2").readonly=true;
    this.getField("Text3").fillColor=color.gray;
    this.getField("Text3").readonly=true;
    } else {
    this.getField("Text2").fillColor=color.transparent;
    this.getField("Text2").readonly=false;
    this.getField("Text3").fillColor=color.transparent;
    this.getField("Text3").readonly=false;
    }
    }
    ou en script de calcul des champs modifiés, mais ces scripts s’exécutent après chaque évènement ce qui peut être pénalisant s’il y en a beaucoup :
    if (this.getField("Dropdown7").value=="Champs grisés") {
    event.target.fillColor=color.gray;
    event.target.readonly=true;
    } else {
    event.target.fillColor=color.transparent;
    event.target.readonly=false;
    }

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    #72522
    Yojo
    Participant

    Merci Bebarth,

    mais si je met plusieur mot dans la liste d’élément dans la liste déroulante , je n’arrive pas a grisé les case texte selon le mot sélectionné.

    Je voudrais faire comme le fichier ce fichier excel mais en pdf lien

    #72523
    bebarth
    Maître des clés

    bonjour,
    Dans ton fichier Excel, je ne vois pas à voir quelles cellules sont grisées en fonction de quels éléments des menus déroulants !
    Pourrais-tu donner quelques exemples.

    mais si je met plusieur mot dans la liste d’élément dans la liste déroulante

    À première vue if suffirait d’ajouter des “ou” (||).

    @+
    😎

    #72524
    Yojo
    Participant

    “bonjour,
    Dans ton fichier Excel, je ne vois pas à voir quelles cellules sont grisées en fonction de quels éléments des menus déroulants !
    Pourrais-tu donner quelques exemples”

    bonjour bebarth,

    Pour donner l’exemple lorsque je mais “chantier non déclarer” dans infraction il faut que les 4 cases texte qui suit soit blanche ou grise et q’u on puisse rien écrire dessus.

    ou que si je mais “rdv pris non respecté” que ce soit juste la 4eme case qui soit blanche ou grise et qu’on puisse rien écrire dedans

    J’ai encore essayer toute cet fin de soirée mais toujours pas trouver le moyen.

    #72525
    destylast
    Participant

    Donc si je comprend bien N° Téléservice de la DICT – (Si Travaux urgents menu déroulant)/ Si absence de RDV- confirmation prise du rendez-vous/Si RDV non respecté – date du RDV fixée/Si non respect des prescriptions – commentaires, son plus accessible si chantier non déclarer dans la rubrique  Infraction relevée de choisis dans ta liste déroulante.

    #72526
    Merlin
    Maître des clés

    “Pour donner l’exemple lorsque je mais « chantier non déclarer » dans infraction il faut que les 4 cases texte qui suit soit blanche ou grise et qu’on puisse rien écrire dessus.”

    Pour qu’on puisse t’aider il faut les règles complètes, pas juste un exemple.

    #72529
    bebarth
    Maître des clés

    bonjour,
    Pour programmer ton formulaire plus facilement, il va falloir au préalable revoir les noms des champs et les valeurs d’exportations des menus déroulants. Tu imagines bien que si dans les formules on a uniquement des valeurs du type ” Absence de RDV préalable – 2 appels infructueux, demande de RDV “, le script va vite devenir illisible… Des chaines de caractères de ce type ne doivent être que des valeurs attribuées à des champs.

    J’ai quand même fait l’exemple donné, mais Merlin à raison : pour établir une formule il faut une règle et non juste un ou des exemple :
    if (!event.willCommit) {
    if (event.changeEx==" Chantier non déclaré (CND)") {
    this.getField("N° Téléservice de la Dict").fillColor=color.gray;
    this.getField("N° Téléservice de la Dict").readonly=true;
    this.getField("Si absence de RDV").fillColor=color.gray;
    this.getField("Si absence de RDV").readonly=true;
    this.getField("si rdv non respecté").fillColor=color.gray;
    this.getField("si rdv non respecté").readonly=true;
    this.getField("si non respect des prescriptions").fillColor=color.gray;
    this.getField("si non respect des prescriptions").readonly=true;
    } else {
    this.getField("N° Téléservice de la Dict").fillColor=color.transparent;
    this.getField("N° Téléservice de la Dict").readonly=false;
    this.getField("Si absence de RDV").fillColor=color.transparent;
    this.getField("Si absence de RDV").readonly=false;
    this.getField("si rdv non respecté").fillColor=color.transparent;
    this.getField("si rdv non respecté").readonly=false;
    this.getField("si non respect des prescriptions").fillColor=color.transparent;
    this.getField("si non respect des prescriptions").readonly=false;
    }
    }
    Dans ton cas, s’il n’y a pas de règle bien définies, il faudra utiliser des “else if” pour chaque cas.
    if (!event.willCommit) {
    if (event.changeEx==" Chantier non déclaré (CND)") {
    this.getField("N° Téléservice de la Dict").fillColor=color.gray;
    this.getField("N° Téléservice de la Dict").readonly=true;
    this.getField("Si absence de RDV").fillColor=color.gray;
    this.getField("Si absence de RDV").readonly=true;
    this.getField("si rdv non respecté").fillColor=color.gray;
    this.getField("si rdv non respecté").readonly=true;
    this.getField("si non respect des prescriptions").fillColor=color.gray;
    this.getField("si non respect des prescriptions").readonly=true;
    } else if (event.changeEx==" Absence de RDV préalable - 2 appels infructueux, demande de RDV") {
    ...
    ...
    } else if (event.changeEx==" Non respect des prescriptions GRTgaz") {
    ...
    ...
    } else {
    this.getField("N° Téléservice de la Dict").fillColor=color.transparent;
    this.getField("N° Téléservice de la Dict").readonly=false;
    this.getField("Si absence de RDV").fillColor=color.transparent;
    this.getField("Si absence de RDV").readonly=false;
    this.getField("si rdv non respecté").fillColor=color.transparent;
    this.getField("si rdv non respecté").readonly=false;
    this.getField("si non respect des prescriptions").fillColor=color.transparent;
    this.getField("si non respect des prescriptions").readonly=false;
    }
    }

    Autre recommendation, pour les menus déroulants, pense à cocher la case “Valider la valeur sélectionnée immédiatement”.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    #72531
    destylast
    Participant

    Top ton exemple bebarth une option qui serait sympathique et d’effacer les textes dans ces champs s’il son rempli avant de faire le choix dans la liste déroulante qui grise ces champs, mais encore bravo pour ton travail 👍

    #72532
    Yojo
    Participant

    Merci bebarth,

    je vais regarder ça , merci en tous cas de ton aide

    #72533
    destylast
    Participant

    J’ai repris ton fichier avec des petites modifications graphique et modifier le script bebarth pour effacer tes champs texte et tes listes déroulantes si tu as sélectionné  Chantier non déclaré (CND) vois si cela te va.

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