Donnez vie à vos documents numériques !
 

Format monétaire avec espace, décimales SANS signe de $ et sans afficher 0.00

abracadabraPDF Forums PDF – Général Format monétaire avec espace, décimales SANS signe de $ et sans afficher 0.00

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45894
    Sky
    Membre

    Bonjour j’ai des champs texte dont le signe de dollars est déjà présent sur le formulaire (donc pas besoin de s’afficher dans mon champ).
    Je cherche un script qui s’affiche avec des espaces entre les centaines et les dizaines avec la virgule et sans le symbole dollar à la fin.
    Par exemple comme ceci :
    1 234 567,12
    De plus, lorsque l’utilisateur n’a pas encore rempli le formulaire. Le champ ne doit rien afficher. Je ne veux pas voir de 0,00, comme ça si on doit imprimer avant d’avoir rempli à l’écran on peut le faire.

    Quelqu’un peut-il m’aider ?

    Merci d’avance  :soleil:

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

    bonjour,
    Est-ce le résultat d’un calcul ou le nombre est-il rentré manuellement ?
    @+
    :bonjour:

    #64330
    Merlin
    Maître des clés

    Bonjour.

    Place ce script en “script de format personnalisé” :

    Code:
    event.value = util.printf("%,2.2f",event.value).toString().replace(/./gim," ");
    if (event.value == "0,00") {event.value = ""};

    Attention, si le champ qui utilise ce script est utilisé pour d’autres calculs qui en découlent il faudra supprimer la deuxième ligne (qui supprime le zéro) sinon ça provoquerait des erreurs NaN (Not a Number).

    #64331
    Sky
    Membre

    @bebarth : Non mon champs n’est pas un calcul, il est un nombre rentré manuellement.
    @Merlin : C’est parfait ! Est-ce possible d’avoir le même javascript mais qu’il fonctionne autant si l’utilisateur inscrit le (point) ou la (virgule) pour tapper le nombre. Actuellement ce code fonctionne seulement si l’utilisateur utilise le (point) mais j’aimerais être certaine que les deux possibilités soit possible dans le meilleur des mondes :)

    PS: si vous avez ce code en version inversée aussi pour l’anglais par exemple! Pour avoir un résultat similaire mais inversé :P Résultat : nombre avec un point peut importe si l’utilisateur tape une (virgule) ou un (point)

    Merci beaucoup! C’est super apprécié.

    #64332
    Merlin
    Maître des clés

    Pour obtenir le point à la place de la virgule il faut remplacer :

    event.value = util.printf(“%,2.2f”,event.value).toString().replace(/,/gim,” “);

    par

    event.value = util.printf(“%,0.2f”,event.value).toString().replace(/,/gim,” “);

    Pour le reste je ne sais pas, je te renvoie à la doc…  :joker:

    #64333
    Sky
    Membre

    Merci :D !! Cool ce petit imprime-écran ! Je ne sais pas comment créer de Javascript mais cela va m’être utile de comprendre ces quelques données ! Merci beaucoup.

    #64334
    bebarth
    Maître des clés

    @Merlin : C’est parfait…

    Je suis un peu étonné, car pour moi :

    Code:
    event.value = util.printf(“%,2.2f”,event.value).toString().replace(/,/gim,” “);

    devrait donner : 1.234 56 puisqu’on remplace chaque virgule par un espace… il faudrait plutôt écrire :

    Code:
    event.value = util.printf(“%,2.2f”,event.value).toString().replace(/./g,” “);

    …de plus, g devrait suffire pour global quand on remplace un signe !
    Et dans l’autre exemple il faut remplacer les virgules par un espace

    Code:
    .replace(/,/gim,” “)

    et le point par une virgule

    Code:
    .replace(“.”,”,”)

    (il devrait n’y en avoir qu’un).
    @+
    :bonjour:

    #64335
    Sky
    Membre

    Bonjour les gars :)

    Le javascript de Merlin fonctionne très bien pour moi pour la règle typographique en français : 1 234 567,89 et ne pas afficher 0,00 quand rien n’est inscrit dans la case.

    event.value = util.printf(“%,2.2f”,event.value).toString().replace(/./gim,” “);
    if (event.value == “0,00”) {event.value = “”};

    par contre pour la règle typographique en anglais, aucun des codes ne fonctionne .. j’ai tenté plusieurs options mais sans résultats : 
    Il me faut un javascript pour ceci : 1 234 567.89 et ne pas afficher 0.00 par défaut..

    Quelqu’un pourrait m’aider à obtenir se format SVP. ? 

    #64336
    Merlin
    Maître des clés

    Il me faut un javascript pour ceci : 1 234 567.89 et ne pas afficher 0.00 par défaut.

    Il faut remplacer la virgule par un point dans la 2e ligne :

    if (event.value == “0.00“) {event.value = “”};

    Ça devrait aussi fonctionner avec :

    if (event.value == “0“) {event.value = “”};

    #64337
    Sky
    Membre

    Bonjour Merlin, la première partie non plus ne fonctionne pas pour le format 1 234 567.89
    je suis un peu désespérée !

    #64338
    bebarth
    Maître des clés

    bonjour,

    Il me faut un javascript pour ceci : 1 234 567.89 et ne pas afficher 0.00 par défaut..

    J’avais cru comprendre que l’utilisateur tape un point (12345.78) ou une virgule (12345,78), le résultat devait être 12 345,78
    C’est pas cela ???
    @+
    :bonjour:

    #64339
    Sky
    Membre

    C’est exacte bebarth,

    il me faut maintenant l’inverse hihi :  que l’utilisateur tape un point (12345.78) ou une virgule (12345,78), le résultat soit 12 345.78

    J’ai tout essayé, mais je ne suis pas tombé sur ce résultat…

    #64340
    bebarth
    Maître des clés

    Voilà !
    Rien à voir avec le script de Merlin. C’est un champ texte avec un script de touches personnalisé pour n’admettre que les chiffres, le point et la virgule et un script en champ désactivé pour faire le job!
    Tu as les 2 versions avec au final le point ou avec la virgule.
    J’ai mis un espace fin au lieu d’un espace pour séparer les milliers.
    Tu me dis si j’ai oublié quelque chose.
    @+
    :bonjour:

    #64341
    Sky
    Membre

    bebarth tu es mon sauveur !!

    Il manque un seul détail et on y est.. j’ai essayer de recopier ce javascript : if (event.value == “0,00”) {event.value = “”};
    il ne fonctionne plus avec ton javascript.  Est-ce possible de faire en sorte que le champs reste vide et n’affiche pas : .00 ou ,00 par défaut lorsqu’il n’est pas rempli ?
    Je sais, je sais ! Je suis exigeante hihi!

    #64342
    bebarth
    Maître des clés

    bonjour,

    Je sais, je sais ! Je suis exigeante hihi!

    Tu es une femme, non ???
    Voilà, je pense que ce coup-ci tout y est !!!
    @+
    :bonjour:

    …et donc, en plein dans le mille !
    :geek:

    #64343
    Sky
    Membre

    C’est de la magie ! Plus que parfait !  :bravo: :bonjour: Merci bebarth!  :soleil:

    #64344
    Merlin
    Maître des clés

    :bravo:

    #64345
    Lulularsu
    Participant

    Bonsoir,

    Sur un formulaire d’inscription, je voudrais également que les champs à 0,00€, ne s’affichent pas. Mais à la différence de Sky, mes champs comportent des formules du type car ils vont récupérer un montant dans un autre champ :

    Code:
    if (this.getField(“TarifGlace”).value!=”Off”) {
    this.event.target.value=this.getField(“TarifGlace”).value;
    } else {
    this.event.target.value=”0″;
    }

    J’ai essayé d’inclure le script :

    Code:
    event.value = util.printf(“%,2.2f”,event.value).toString().replace(/./gim,” “);
    if (event.value == “0,00”) {event.value = “”};

    mais cela ne fonctionne pas même en supprimant la 2e ligne.

    Quelqu’un pourrait-il m’aider ?
    Merci par avance

    #64346
    Merlin
    Maître des clés

    Bonjour.

    S’il y a d’autres calculs dépendants il ne faut pas supprimer la valeur zéro, il faut la masquer.
    Par exemple en lui donnant la même couleur que le fond (blanc) de la page.

    À placer en script de validation ou bien en script de format personnalisé :

    Code:
    if (event.value == 0) {
        event.target.textColor = color.white ;
    }
    else {
        event.target.textColor = color.black ;
    }
    #64347
    bebarth
    Maître des clés

    bonjour,
    Je t’ai envoyé une proposition en MP sur le fichier que tu m’as fourni.
    @+
    :bonjour:

    #64348
    Sky
    Membre

    Suite à ma demande initiale,

    J’ai maintenant besoin d’avoir le signe de $ qui s’affiche (à droite en français et à gauche en anglais).
    FR: 9 999,00 $
    AN: $9 999.00

    Je joins le PDF avec les 2 champs.
    Merci beaucoup !!  :Smiley01:

    #64349
    bebarth
    Maître des clés

    bonsoir,
    Pour le français :

    Code:

        this.event.target.value=nombre+” $”;
    } else {
        this.event.target.value=””;
    }

    Pour l’anglais :

    Code:

    var chaine=this.event.target.valueAsString;
    if (chaine.startsWith(“$”)) var chaine=chaine.substring(1);


        this.event.target.value=”$”+nombre;
    } else {
        this.event.target.value=””;
    }

    @+
    :bonjour:

    #64350
    Sky
    Membre

    Un GROS merci !!
    Vous êtes magique  :bravo:

    #64351
    Merlin
    Maître des clés

    Trop fort ce bebarth !  :bravo:

    :merlin:

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