Donnez vie à vos documents numériques !
 

JavaScript / oLB imprime frequement un « 1 », par erreur

abracadabraPDF Forums PDF – Général JavaScript / oLB imprime frequement un « 1 », par erreur

  • Créateur
    Sujet
  • #71479
    Mhidnight
    Participant

    Bonjour, je suis présentement en train d’optimiser des formulaires et je constate qu’il y a probablement un problème dans les lignes de script, le problème est que bien que tous les champs (oLB) soit bien remplis (avec des dates, sous format ex.2022-09-09), la case de champ finale imprime souvent le chiffre 1, suivi des champs oLB défilant après.

    Bref, pourquoi le chiffre 1 imprime dans ma sélection, alors qu’il n’y figure pas ? Et comment pourrais-je l’enlever ?

    var oLB = this.getField("redaction_date");
    var nItems = oLB.numItems ;

    oLB.insertItemAt(" ");
    oLB.insertItemAt(this.getField("Appelrecu_date").value,1 ,0);
    oLB.insertItemAt(this.getField("1.SurvenuEntre_Date").value,2 ,0);
    oLB.insertItemAt(this.getField("SurvenuEntre_Date2").value,3 ,0);

    Voila la ligne de script problématique !

    Au plaisir et Merci !

Affichage de 12 réponses de 1 à 12 (sur un total de 12)
  • Auteur
    Réponses
  • #71480
    bebarth
    Maître des clés

    bonjour,
    dans la méthode « insertItemAt » le deuxième paramètre indique la valeur d’exportation. Je ne comprends pas « Bref, pourquoi le chiffre 1 imprime dans ma selection… » mais il y a bien un 1 en valeur d’exportation.

    D’après ce que je comprends, il serait préférable d’écrire les valeurs dans une table plutôt que de les insérer une après l’autre :
    var lesDates=[[],[this.getField(" Appelrecu_date ").value,1],[this.getField(" 1.SurvenuEntre_Date ").value,2],[this.getField(" SurvenuEntre_Date2 ").value,3]];
    this.getField(" redaction_date ").setItems(lesDates);

    …et une petite remarque : ne pas mettre d’espaces dans le nom des champs.

    @+
    😎

    #71483
    bebarth
    Maître des clés

    bonjour,
    Dans l’onglet « Options » des propriétés du menu déroulant tu sélectionnes « Valider la valeur sélectionnée immédiatement ». Ça devrait fonctionner !

    @+
    😎

    #71484
    Mhidnight
    Participant

    @bebarth

    Merci pour la réponse, j’ai fait la modification, mais ca occasionne toujours le meme bug (le VAR n’imprime pas dans la case / disparait).

    Une autre idée ?

    #71489
    bebarth
    Maître des clés

    bonjour,

    le VAR n’imprime pas dans la case / disparait

    En fait, je ne comprends pas ce que cela signifie… Pourrais-tu partager un fichier ?

    @+
    😎

    #71493
    Mhidnight
    Participant

    Certainement, je vous envois un condensé de la situation.

    Ne faite pas attention a la mise en forme S.V.P, ca ne reflete pas l’ensemble du document 😛

    Attachments:
    You must be logged in to view attached files.
    #71504
    bebarth
    Maître des clés

    bonjour,
    Je ne suis pas certain de comprendre le process !
    A chaque fois que tu entres une nouvelle Date1 (champ texte) elle s’ajoute (sans vérifier si elle existe déjà) dans le menu déroulant Date2 et lorsque tu sélectionnes une Date2, Date1 et Date2 s’ajoutent au menu déroulant Date3 (?????? ça me parait étrange).
    Que doit-il y avoir dans le menu déroulant avec le cadre rouge ????

    Peux-tu expliquer exactement !

    @+
    😎

    #71506
    Mhidnight
    Participant

    En fait,

    Date 1 et Date 2, sont les dates de l’évenement.

    Comme la plupart des evenement se passe sur une période dans la meme journée:

    Date 1 transpose automatiquement sa valeur dans Date 2.

    Cependant, si l’événement sa passe sur 2 jours différents:

    Date 1 se transpose dans Date 2 et cela créé un raccourci pour seulement changer la journée (au lieu de devoir remettre les valeur Année / Mois)

    Ensuite Date 3 est la date de l’appel concernant l’événement:

    Ce champ transpose les Date 1 et Date 2, car c’est souvent l’une de ses dates ou l’appel a été recu. On peut alors selectionner la date de notre choix entre Date 1 et 2, ou encore en inscrire une nouvelle si la personne signal l’événement plusieurs jours plus tard.

    Finalement, la Case Rouge est la date de rédaction du rapport, on doit pouvoir selectionner entre les Date 1,2,3.

    Le principal probleme du présent process est concernant la Case Rouge:

    Le choix de valeur qu’on fait dans la case rouge ne reste pas dans la case, aussitot qu’on clique a coté, la valeur disparait de la case.

    Meme si je coche « Commited selected value », la valeur ne reste pas dans la case et disparait.

    Est-ce qu’une ligne de script pourrait régler ca ?

    #71507
    Mhidnight
    Participant

    Je crois avoir mis le doight dessus en ajoutant:

    var that = e.options[e.selectedIndex];

    #71508
    bebarth
    Maître des clés

    Je crois avoir mis le doight dessus en ajoutant: var that = e.options[e.selectedIndex];

    Très bien, si tu t’en es sorti…

    @+
    😎

    #71509
    Mhidnight
    Participant

    Finalement ca galère toujours…si desfois tu as une idée 🙁

    #71510
    bebarth
    Maître des clés

    Je regarde demain…

    @+
    😎

    #71511
    bebarth
    Maître des clés

    bonjour,
    Voici ce que j’ai fait avec une fonction en script de document. Tous les champs sont au format yyyy-mm-dd.
    On indique date1 qui se reproduit automatiquement dans date2 (champ texte que l’on peut modifier). Le menu déroulant date3 reprend ces 2 dates (si différente car les doublons sont supprimés) avec possibilité d’ajouter une nouvelle date.
    Idem pour le champ avec contour rouge.

    // Fonction qui supprime les doublons d'une table
    function sansDoublons(uneTable) {
    return uneTable.filter((valeur, indice) => uneTable.indexOf(valeur)===indice);
    }

    // Script de calcul date2 permet de modifier la valeur indiquée par date1
    if (event.source && event.source.name=="date1") event.value=this.getField("date1").value;

    // Script de validation date2
    var laTable=[this.getField("date1").value,event.value];
    this.getField("date3").setItems(sansDoublons(laTable).sort());

    // Script de validation date3
    var laTable=[this.getField("date1").value,this.getField("date2").value,event.value];
    this.getField("rencontre_date_BB").setItems(sansDoublons(laTable).sort());

    Je n’ai pas vu l’utilité d’ajouter un élément vierge pour les menus déroulants !
    J’espère avoir répondu à ta demande.

    @+
    😎

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