Donnez vie à vos documents numériques !
 

Execution d’un script si un champ est absent

abracadabraPDF Forums PDF – Général Execution d’un script si un champ est absent

  • Créateur
    Sujet
  • #74809
    michel c.
    Participant

    Bonjour, j’aimerais qu’un script s’exécute uniquement si un champ nommé “meca” n’est pas présent.

    Javais pensé à ceci :

    if (this.getField("meca")!=0) {

    var aCropRect = this.getPageBox("Crop",0);
    var nMiddle = aCropRect[2]/2;
    var rectFld = [];
    rectFld[0] = nMiddle-150;
    rectFld[1] = aCropRect[3]+25;
    rectFld[2] = nMiddle+150;
    rectFld[3] = aCropRect[3];
    var oFld = this.addField("meca", "text", 0, rectFld);
    oFld.value = "\u00a9\u0020\u004d\u002e\u0020\u0043\u0061\u0072\u0063\u0061\u0073\u0073\u006f\u006e\u0020\u002d\u0020\u006d\u0065\u0063\u0061\u0030\u0035\u002e\u0066\u0072\u0020\u002d\u0020\u0061\u0064\u006d\u0069\u006e\u0040\u006d\u0065\u0063\u0061\u0030\u0035\u002e\u0066\u0072 ";
    oFld.alignment = "center";
    this.getField("meca").fillColor = color.transparent;
    this.getField("meca").textColor = color.white;
    this.getField("meca").borderColor = color.transparent;
    this.getField("meca").display = display.hidden;

    }

    Cependant je constate que si je déplace ce champ, le script s’éxécute à nouveau et je me retrouve avec plusieurs champs avec ce nom.

     

    Merci

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

    Bonjour

     

    Remplace la première ligne par :

    if (this.getField("meca") === null) {

     

    Par ailleurs, logiquement ton script devrait s’exécuter même si le champ n’est pas déplacé, mais tu ne dois pas le voir car ils se superposent.

    #74811
    michel c.
    Participant

    merci. ça fonctionne

    #74812
    bebarth
    Maître des clés

    bonjour,
    …ou if (!this.getField("meca")) {..., ça fonctionne aussi !

    @+
    😎

    #74813
    michel c.
    Participant

    J’en apprend tous les jours. je n’avais jamais vu le point d’exclamation placé avant….

    Merci

    #74814
    bebarth
    Maître des clés

    je n’avais jamais vu le point d’exclamation placé avant…

    Si, certainement… “==” signifie “est égale à” alors que “!=” signifie “est différent de“. Le point d’exclamation (!) exprime l’inverse.
    Donc if (!this.getField("meca")) signifie s’il n’y a pas de champ nommé “meca”.

    À noter que “==” est le signe d’égalité faible qui ne tient compte que de la valeur (donc0=="0",  le chiffre 0 est égal au caractère “0” et idem pour 0==null) alors que “===” est le signe d’égalité stricte qui tient compte que de la valeur et du type, d’où 0!=="0" et 0!==null.

    @+
    😎

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