Donnez vie à vos documents numériques !
 

Convention de dénomination & Javascript (a…, c…, n…, etc.)

abracadabraPDF Forums PDF – Général Convention de dénomination & Javascript (a…, c…, n…, etc.)

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45011
    Mouss
    Membre

    Bien le bonjour les magiciens,

    Je compte utiliser les fonctionnalités du PDF en PJ fait par Thom Parker et je me demandais, vu que ce n’est pas la première fois que je vois ça, à quoi correspondent les lettres en minuscules qui sont parfois utilisées dans les noms de variables (mais pas que) en première lettre, celles que je vois le plus souvent étant : c et n, et dans une moindre mesure a et o.

    Exemple dans le fichier joint les variables aVeggies, aFruits et cRtn.
    Mais aussi dans un script d’impression nStart par exemple.

    Je suppose qu’il doit y avoir un rapport avec le niveau d’interaction (application, document, champ) ?
    J’imagine qu’il n’y a pas d’obligation à utiliser cette « convention » dans les noms de variable, mais est-ce que leur utilisation ajoute/change quelque chose ?

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

    Bonjour.

    Va savoir ce qui passe dans la tête de Thom…  :geek:
    Mais effectivement, c’est une bonne méthode de programmation que de faire précéder le nom des variables par leur type, mais comme toutes les bonnes méthodes ce n’est pas obligatoire.

    n = number
    str = string (chaine de caractères)
    Etc.

    #58010
    Merlin
    Maître des clés

    Pour éviter les confusions je précise que cette convention dont tu parles n’a rien à voir avec la très technique, mais pas obligatoire non plus, Convention de dénomination des champs de formulaire basée sur le principe de l’héritage parent-enfant.
    Voir : http://abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/duplication-rapide-de-champs-de-formulaire/

    #58011
    alex
    Membre

    Bonsoir,
    Il s’agit bien de désigner la nature ce qui est manipulé comme le dit Merlin:
    a pour les tableaux, exemple, var aFruits = [« Fruits », »Apples », »Oranges »];
    b pour les variables binaires, exemple bBlockEx8 = true;
    c pour les variables chaines de caractères, exemple cContactName = this.getField(« Ex8.ContactDropDown »).value;
    n pour les entiers
    o pour les objets, exemple var oFld = this.getField(« Ex7. » + cName); où oFld est un champ

    En ce qui concerne nStart, il s’agit du nom d’un argument associé à une méthode app. (app.print() par exemple) où nStart désigne un numéro de page (donc un entier).
    Exemple de méthode app. (ajout d’un item de menu):
    app.addMenuItem({cName: »Close All PD&Fs »,
                    cParent: »File »,
                    nPos:6,
                    cExec: »DoCloseAllDocs() »,
                    cEnable: »event.rc = app.doc != null »
    });

    Je pense que c’est une bonne habitude de développeur. Je ferais bien de la faire mienne…

    #58012
    Merlin
    Maître des clés

    J’y vois beaucoup plus clair maintenant.  :Smiley01:

    aGl290cLkPLr.gif

    #58013
    Mouss
    Membre

    Super, moi aussi j’y vois beaucoup plus clair. Merci pour vos réponses  :bonjour:

    D’ailleurs Alex, avant de trouver ce PDF de Thom Parker, je suis tombé sur ton exemple de liste mère-fille (merci de partager ça!  :bravo:) et je me demandais pourquoi un « ! » était utilisé dans le !event.willCommit ?

    Je connais l’utilisation « normale » du ! mais là je ne comprends pas trop…
    J’ai feuilleté le doc reference acrobat JS et là je viens de tomber sur ça https://acrobatusers.com/tutorials/print/formatting_text_fields (instructif également), mais je vois pas ce qui différencie event.willCommit de !event.willCommit … :Ooops:

    #58014
    Merlin
    Maître des clés

    Le point d’interrogation « ! » inverse la commande.

    == : est égal
    != : n’est pas égal
    event.willCommit : si l’évènement se produit (en général une saisie)
    !event.willCommit : si aucun évènement ne s’est produit (ex: pas de saisie, l’utilisateur a cliqué dans le champ et l’a désactivé sans rien saisir)
    Etc.

    #58015
    Mouss
    Membre

    C’est ce que j’imaginais, mais pourtant dans l’exemple d’Alex, sur les listes déroulantes mères, le script qui remplit les listes filles c’est :

    Code:
    //Remplissage du second menu déroulant
    if(!event.willCommit)
    {
    RemplissageFille();
    }

    Or le remplissage de la liste fille se fait bien lorsqu’un choix a été fait sur la liste mère…  :Euuuh:

    #58016
    Mouss
    Membre

    Bonjour les marabouts du javascript,

    Je ne sais pas si je dois ouvrir un autre sujet pour ça mais j’ai une question à laquelle je n’arrive pas à trouver de réponse malgré plusieurs heures de recherche…

    J’essaie de définir une variable, type string, qui aurait pour valeur le nom d’un champ. L’objectif est d’en extraire un bout, substring.

    Pour être plus précis, je souhaite récupérer l’indice d’un champ enfant pour agir avec un autre champ enfant qui aurait le même indice, je m’explique :

    Sur une ligne, j’ai créé un champ « nature » et un champ « prix », je les ai dupliqués verticalement jusqu’à remplir la page, j’ai donc 2 colonnes de champs, nature.i et prix.i.
    Je souhaite dans un script de validation sur tous mes champs prix faire une action en fonction de la valeur du champ nature de la même ligne.

    Je sais récupérer le nom de mon champ avec event.target.name.
    J’ai testé les fonctions substring et substr qui m’ont bien retourné une partie du texte que j’ai entré dans un champ.

    J’ai fait plusieurs essais du type :

    Code:
    var nom=event.target.name;
    console.println(substring(nom,2,4));

    ou

    Code:
    var nom=event.target.name;
    nom=nom.valueAsString;
    console.println(substring(nom,2,4));

    Le problème c’est qu’avec ça, j’ai un message dans la console qui me dit substring (ou substr) is not defined.
    Vu que ça marche lorsque je veux récupérer une partie d’un texte entré dans un champ, je me dis que la non définition de la fonction vient du fait que ma variable n’est pas considérée comme une chaine de caractères  :doute:

    Pour peut-être vous aider à y voir plus clair, voici l’idée du script mis en validation :
    Idée de l’action de validation sur prix.i : var i=extraction de l’indice du champ; if (this.getField(« nature. »+i).value==…) …;

    Des idées/explications pour aider l’apprenti sorcier que je suis ?

    #58017
    Mouss
    Membre

    Bon, je crois avoir trouvé, je rédigeais tout simplement mal mon script…

    en écrivant nom.substring(x,y) au lieu de substring(nom,x,y), ça marche  :jerisjaune:

    #58018
    Merlin
    Maître des clés

    :Smiley03:

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