Donnez vie à vos documents numériques !
 

Le premier 0 du numéro de téléphone disparait dans les champs textes

abracadabraPDF Forums PDF – Général Le premier 0 du numéro de téléphone disparait dans les champs textes

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45589
    peej22
    Membre

    Bonjour,

    Comme vous le verrez dans le PDF joint, mon client me demande que tous les champs du menu ENTREPRISE soient repris automatiquement (en cochant une case) dans les champs du menu ADRESSE DE FACTURATION mais il veut aussi que la personne puisse remplir les champs du menu ADRESSE DE FACTURATION (si la case n’est pas coché) si ils sont différents des champs du menu ENTREPRISE.

    MON PROBLÈME : il y des champs ou un numéro de téléphone doit être renseigné et dans les champs ADRESSE DE FACTURATION le premier zéro ou le + disparait du numéro alors que le premier zéro est présent dans les champs téléphone dans les champs du menu ENTREPRISE.

    Ce que j’ai fait (peut-être il y a t il plus simple) :

    – créé des champs texte dans le menu ENTREPRISE
    – créé une case à cocher qui fait apparaitre dans le menu ADRESSE DE FACTURATION soit les même champs que les champs texte du menu ENTREPRISE
    – crée des champs texte (avec des noms différents) dans le menu ADRESSE DE FACTURATION
    – crée des champs texte (avec des noms différents des deux premiers) dans le menu ADRESSE DE FACTURATION juste pour raison sociale pour l’instant (en superposition)

    pour Raison_sociale_diff (dans l’espace adresse de facturation) voici le script de calcul :

    Code:
    if (this.getField(“OK”).isBoxChecked(0))
    {event.target.display = display.hidden;
    this.getField(“Raison_sociale_diff”).display = display.hidden;}
    else
    {event.target.display = display.visible;
    this.getField(“Raison_sociale_diff”).display = display.visible;}

    – pour Raison_sociale (dans l’espace adresse de facturation) voici le script de calcul (qui reprend les informations des champs entreprise :

    Code:
    event.target.value = this.getField(“Raison_sociale”).value;

    if (this.getField(“OK”).isBoxChecked(0))
    {event.target.display = display.visible;
    this.getField(“Raison_sociale_3”).display = display.visible;}
    else
    {event.target.display = display.hidden;
    this.getField(“Raison_sociale_3”).display = display.hidden;}

    Le menu ou il faut renseigner des champs dans COORDONNÉES CATALOGUE est indépendant et n’a pas d’incidence avec ce que je veux faire.

    tout ça fonctionne très bien, il y a peut être une solution plus simple.

    MAIS JE LE RÉPÈTE, MON PROBLÈME : il y des champs ou un numéro de téléphone doit être renseigné et dans les champs du menu ADRESSE DE FACTURATION le premier zéro ou le + disparait du numéro alors que le premier zéro est présent dans les champs téléphone dans les champs du menu ENTREPRISE.

    Par avance, merci pour votre aide précieuse.

    Cordialement.

    Jean-Philippe

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

    Bonjour.

    La question concernant le format téléphone a encore été posée pas plus tard qu’il y a 3 jours, à l’heure où j’écris cette question apparait en 10e position dans les sujets récents sur la page d’accueil.  :geek:
    ==> http://abracadabrapdf.net/forum/index.php/topic,3177.0.html

    La méthode pour remplir les champs facturation tient la route, on pourrait peut-être l’optimiser mais si ça fonctionne correctement c’est l’essentiel.
    :Smiley15:

    Par ailleurs il faudrait décocher ces options par défaut (voir capture), qui sont contre-productives dans des champs de coordonnées.
    :idee:

    #62200
    peej22
    Membre

    Bonjour Merlin et merci pour ta réponse.

    A propos de cette phrase, as tu un méthode plus simple, je suis preneur ? :
    “La méthode pour remplir les champs facturation tient la route, on pourrait peut-être l’optimiser mais si ça fonctionne correctement c’est l’essentiel”

    Jean-Philippe

    #62201
    bebarth
    Maître des clés

    A propos de cette phrase, as tu un méthode plus simple, je suis preneur ? :

    Bonjour,
    Il y a effectivement plus simple ! Si ce n’est pas trop tard, je pourrai regarder… lundi.
    Bon week-end & @+
    :bonjour:

    #62202
    Merlin
    Maître des clés

    Rien que la mise en fonction rend les choses plus simples.
    Cadeau ci-joint, je crois que je n’aurais pas fait mieux.  :Smiley15:

    Les fonctions utilisées :

    Code:
    //
    function transfertTextes2() {
    // on ajoute _2 au nom du champ qui calcule
    var sNomChampCible2 = event.target.name + “_2”;
    // si la case OK2 est cochée
    if (this.getField(“OK2”).value != “Off”) {
    // on rempli le champ cible avec la valeur du champ qui calcule
    this.getField(sNomChampCible2).value = event.target.valueAsString;
    }
    }
    //
    function transfertTextes3() {
    // on ajoute _3 au nom du champ qui calcule
    var sNomChampCible3 = event.target.name + “_3”;
    // si la case OK3 est cochée
    if (this.getField(“OK3”).value != “Off”) {
    // on rempli le champ cible avec la valeur du champ qui calcule
    this.getField(sNomChampCible3).value = event.target.valueAsString;
    }
    }
    //
    #62203
    peej22
    Membre

    Bonjour Merlin,

    Merci pour ce beau travail, vous êtes super fort  :tutut:. Cependant admettons que celui qui rempli ce pdf se trompe, qu’il coche COCHER SI IDENTIQUE et que finalement les champs “ADRESSE DE FACTURATION” ne sooient pas les mêmes, les champs (même en décochant) reste préinscrits et renseignés par les champs ENTREPRISE, il doit effacer tous les champs de ADRESSE DE FACTURATION et les retaper pour en mettre des différents. C’est en parti pour ça que j’avais fait des doublons de champs dans la partie ADRESSE DE FACTURATION pour intervertir entre le fonction COCHER SI IDENTIQUE et le remplissage des champs ADRESSE DE FACTURATION de façon libre. il y a-t-il une variante qui puisse faire cela ?

    Je le répète, vous êtes quand même super fort  :extra:

    Ps.: vous avez mis les fonction dans la partie validation, je n’y aurai pas pensé…
    Il y a tellement de possibilités c’est incroyable

    Rien que la mise en fonction rend les choses plus simples.
    Cadeau ci-joint, je crois que je n’aurais pas fait mieux.  :Smiley15:

    Les fonctions utilisées :

    Code:
    //
    function transfertTextes2() {
    // on ajoute _2 au nom du champ qui calcule
    var sNomChampCible2 = event.target.name + “_2”;
    // si la case OK2 est cochée
    if (this.getField(“OK2”).value != “Off”) {
    // on rempli le champ cible avec la valeur du champ qui calcule
    this.getField(sNomChampCible2).value = event.target.valueAsString;
    }
    }
    //
    function transfertTextes3() {
    // on ajoute _3 au nom du champ qui calcule
    var sNomChampCible3 = event.target.name + “_3”;
    // si la case OK3 est cochée
    if (this.getField(“OK3”).value != “Off”) {
    // on rempli le champ cible avec la valeur du champ qui calcule
    this.getField(sNomChampCible3).value = event.target.valueAsString;
    }
    }
    //

    #62204
    Merlin
    Maître des clés

    vous avez mis les fonction dans la partie validation, je n’y aurai pas pensé…

    Heeuuu… Non, non, ce sont des scripts de calcul.  :Smiley03:

    Bien entendu on pourrait vider les champs quand la case correspondante est décochée, ce serait une belle démonstration technique mais ce je déteste ce genre de comportement qui n’est pas très user-friendly.

    En effet, dans la plupart des cas la différence entre les coordonnées sources et les coordonnées dupliquées est minime, souvent c’est juste le nom de la rue ou de la personne qu’il faut changer, tout le reste étant commun.

    Dans le cas présent, si on coche la case “identique” et si on la décoche ensuite, on obtient des champs qui sont pré-remplis. Il suffit alors de juste modifier les différences pour compléter un bloc de coordonnées.

    Dans le cas contraire ce serait : soit toutes les coordonnées sont absolument identiques, soit il faudrait tout (ou presque) resaisir à l’identique en double ou en triple…

    Sachant qu’en tout cas il est toujours plus facile et plus rapide pour l’utilisateur final d’effacer le contenu de champs pré-remplis (TAB + DEL + TAB + DEL + etc) que de resaisir ou de copier-coller 2 ou 3 fois des valeurs dans des champs.

    De mon point de vue c’est le confort de l’utilisateur final qui prime, mais c’est un parti pris.
    Si c’est un requis il faut modifier les fonctions ainsi :

    Code:
    //
    function transfertTextes2() {
    // on ajoute _2 au nom du champ qui calcule
    var sNomChampCible2 = event.target.name + “_2”;
    // si la case OK2 est cochée
    if (this.getField(“OK2”).value != “Off”) {
    // on remplit le champ cible avec la valeur du champ qui calcule
    this.getField(sNomChampCible2).value = event.target.valueAsString;
    }
    // sinon on vide le champ
    else {this.resetForm(sNomChampCible2);}
    }
    //
    function transfertTextes3() {
    // on ajoute _3 au nom du champ qui calcule
    var sNomChampCible3 = event.target.name + “_3”;
    // si la case OK3 est cochée
    if (this.getField(“OK3”).value != “Off”) {
    // on remplit le champ cible avec la valeur du champ qui calcule
    this.getField(sNomChampCible3).value = event.target.valueAsString;
    }
    // sinon on vide le champ
    else {this.resetForm(sNomChampCible3);}

    }
    //

    Comment modifier un script de document ?
    Voir le paragraphe 3 de cet article : http://abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-differents-niveaux-dutilisation-des-scripts-javascript/

    #62205
    Merlin
    Maître des clés

    Merci pour ce beau travail, vous êtes super fort

    :bonjour:  :contentdance:

    #62206
    peej22
    Membre

    En tout cas merci beaucoup Merlin,

    mon fichier est plus “propre” avec votre méthode.

    #62207
    peej22
    Membre

    Bonsoir Merlin,

    En regardant plus attentivement le fichier je n’ai trouvé dans propiétés des champs texte les codes que tu as appliqué, j’ai juste trouvé ceci : Total pour le mois de janvier 2017 : transfertTextes2(); ou transfertTextes3();. Où avez-vous mis le script qui applique : transfertTextes2(); ou transfertTextes3(); ? Comment faites-vous pour faire un script général qui s’applique à tous les champs, si c’est ce que vous avez fait.

    je pensais qu’il fallait renseigné dans le script de calcul personnalisé le script en entier or apparemment transfertTextes2(); ou transfertTextes3(); est un racourcit, c’est ça ?

    Cordialement,

    Jean-Philippe

    #62208
    bebarth
    Maître des clés

    cool, tout est fait… ou presque.
    Pour voir le script, il faut aller voir les scripts de documents !
    @+
    :bonjour:

    #62209
    peej22
    Membre

    Bonsoir Bebarth,

    J’avais trouvé ce que tu montres dans ta capture d’écran.

    Ce que je ne comprend pas c’est où fait-on se genre de script “général” ? car avoir des racourcis dans les champs textes ensuite grâce à ce système est super.

    Cordialement,

    Jean-Philippe

    #62210
    Merlin
    Maître des clés

    Où avez-vous mis le script qui applique : transfertTextes2(); ou transfertTextes3(); ?

    J’avais anticipé cette question :    :Smiley03:

    Comment modifier un script de document ?
    Voir le paragraphe 3 de cet article : http://abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-differents-niveaux-dutilisation-des-scripts-javascript/

    #62211
    Merlin
    Maître des clés

    Comment faites-vous pour faire un script général qui s’applique à tous les champs

    Dès qu’on a plus d’un seul champ qui doivent exécuter un code identique on a intérêt à mettre ce code en fonction, ça facilite la maintenance et les modifications car il n’y a qu’un seul script à modifier.
    Tous les champs peuvent appeler une même fonction. Chacun des champs peut appeler une ou plusieurs fonctions.

    L’autre avantage des fonctions placées en script de document dans un PDF c’est qu’elles sont chargées en RAM à l’ouverture du document et sont donc très réactives
    Contrairement aux scripts placés dans les champs qui ne sont chargés qu’au moment de leur exécution.
    :Smiley15:

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