Donnez vie à vos documents numériques !
 

Equivalent de A99A et AA99A en script

abracadabraPDF Forums PDF – Général Equivalent de A99A et AA99A en script

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #44985
    Rockabilly
    Participant

    J’ai un champs texte dans lequel on doit rentrer AA99A, ou A99A, mais je voudrais également pouvoir avoir les lettres en capitales.
    Si j’utilise le « masque arbitraire », je ne suis pas capable de remplacer les lettres en capitales, mais si j’utilise le script je ne suis pas capable d’avoir l’expression AA99A ou A99A.

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

    Bonjour,

    Est-ce que tu peux joindre un PDF d’exemple avec ton champ ?
    Parce qu’on peux mettre ceci en script de format pour forcer la saisie en capitales : {event.value = event.target.value.toUpperCase();}
    Mais je crois que le masque arbitraire est déjà dans l’onglet « Format », donc il faut voir…
    :geek:

    #57813
    Rockabilly
    Participant

    Salut Merlin
    Merci de vouloir m’aider, alors voici une maquette.

    #57814
    brumbies
    Membre

    Bonjour,

    Le problème que je vois c’est la gestion de 2 masques arbitraires distincts l’un à 4 caractères, l’autres à 5 caractères dans un même champs texte.
    Une solution serait de mettre la fonction toUpperCase() en format personnalisé et de gérer le format via un script de désactivation de ton champs texte en y intégrant un script du style de celui-ci :

    Code:
    var longueur = getField(« Kernel2 »).length;
    var compteur = 0;

    var gauche = getField(« Kernel2 »).value.substring(0,longueur – 3);
    var milieu = getField(« Kernel2 »).value.substring(longueur – 3,longueur – 1);
    var droite = getField(« Kernel2 »).value.substring(longueur – 1,longueur);

    if(gauche.match(/^[A-Za-z]+$/) != gauche && gauche != «  »)
    compteur ++;
    if(milieu.match(/^[0-9]+$/) != milieu && milieu != «  »)
    compteur ++;
    if(droite.match(/^[A-Za-z]+$/) != droite && droite != «  »)
    compteur ++;

    if(compteur > 0)
    {
    app.alert(« Ce champs doit être de la forme suivante : AA99A ou A99A.nMerci de revoir.n »);
    this.getField(« Kernel2 »).setFocus();
    }

    le script est à placer au niveau de ton champs « Kernel2 » dans Actions et en choisissant bien « champs désactivé ».
    tu sauras si la saisie est valide uniquement lors de la sortie du champs texte.

    Je regarde si on peut intégrer ce code au niveau du format via un script de touche …
    :Smiley01:

    #57815
    alex
    Membre

    Bonsoir à tous,
    Voici ma solution si vous ne souhaitez pas accepter les majuscules accentuées. Je passe par les codes ASCII des digits pour reconstituer le format. L’intérêt de cette manière de faire, c’est qu’on peut l’adapter à des formats très divers.
    Les codes ASCII des chiffres vont de 48 à 57 et ceux des majuscules de 65 à 90
    Le script
    testF() de document à exécuter après validation quelque soit le champ de saisie est donc le suivant:

    function testF()
    {
    index=0;
    mot=this.event.value;
    format= » »;
    console.println(« Analyse de la saisie du champ « +this.event.target.name)
      while(index  {
      digit=mot.charCodeAt(index); 
      if(digit>47&digit<58){format=format+"9";}
      if(digit>64&digit<91){format=format+"A";}
      index=index+1;
      }
    console.println(« Format de la saisie: »+format);
      if(format!= »AA99A »&&format!= »A99A »)
      {
      app.alert(this.event.target.name+ »rSaisie incorrecterFormat attendu AA99A ou A99A. »,1);
      this.event.value= » »;
      }
    }

    #57816
    brumbies
    Membre

    :bravo:

    #57817
    alex
    Membre

    Même chose avec le détail de l’analyse (ouvrir la console après validation Ctrl J ou Pomme-J)

    #57818
    Merlin
    Maître des clés
    #57819
    Rockabilly
    Participant

    Wow ça fonctionne à merveille. Merci à tous

    #57820
    Merlin
    Maître des clés

    Il n’y a que des Jedis sur ce forum !
    :bravo:  :extra:

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