Donnez vie à vos documents numériques !
 

Calcul de décimal faux ? – RÉPONDU

abracadabraPDF Forums PDF – Général Calcul de décimal faux ? – RÉPONDU

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #44043
    cmommer
    Membre

    Bonjour à tous,
    J’écris car je rencontre un petit problème. Je suis actuellement au boulot et j’ai des petits soucis avec un PDF. Il s’agit d’un PDF qui contient des infos qui sont destinées à être calculées.
    Donc, je récupère mes données en base de données, je fusionne avec Aspose, et j’attends du PDF qu’il fasse certains calculs automatiquement.
    Par exemple, un champ doit être l’addition de 4 autres qui contiennent des décimaux. Dans mon exemple, on a les valeurs suivantes :
    238.5 + 198 + 342 + 855 = 163350
    Le problème vient en fait que le logiciel semble ne pas reconnaitre la séparation de décimaux. Tous mes champs sont au format XXXX,XX. De plus, il suffirait juste de recaler la virgule. Alors, ça, c’set avec la fonction somme d’Adobe. Quand je fais script personnalisé, ça fait le même résultat, et quand je tente de faire un parseFloat de tout, ça mets simplement 0.

    Quelqu’un aurait une idée, car c’est pareil pour plusieurs autres endroits, où j’ai un choix dans une liste déroulante par exemple.

    En vous remerciant !

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

    Bonjour et bienvenue,

    j’ai bien l’impression que le problème est aussi simple que sa solution : si on sépare les décimales avec un point alors que le format du champ indique une virgule il est “normal” que ça ne fonctionne pas…

    Donc soit on sépare partout les décimales avec un point, soit partout avec une virgule (sauf en JavaScript qui requiert impérativement un point).

    :idee:  :Smiley01:

    #52270
    cmommer
    Membre

    Bonjour,
    Et merci de ta réponse.
    Effectivement, j’avais déjà songé à cela. Cependant, même en changeant le format (à savoir une “,” ou un “.” comme séparateur), rien n’y fait. Ce qui remonte de base de données est un “.”, j’ai donc essayé de mettre ce format partout, mais rien n’y fait …
    Désolé d’avoir manqué de le précisé

    #52271
    Merlin
    Maître des clés

    Ben… il faudrait que tu postes un exemple.
    Je soupçonne le logiciel Aspose de peut-être générer des PDF pas forcément conformes à 100% aux spécifications du format

    Faut voir…
    :doute:

    #52272
    cmommer
    Membre

    Je poste mon actuel, remplis avec des valeurs bidons. Aussi survient maintenant un autre problème à la modification : “ce champ ne correspond pas à la valeur”.

    En plus de ça, le calcul se fait bien à la modif du PDF mais pas au début  :mur:
    Y aurait-il un moyen de forcer le PDF à se rafraichir à l’ouverture ?

    [attachment deleted by admin]

    #52273
    Merlin
    Maître des clés

    Je vais regarder ça, pas bien le temps là tout de suite.
    :Smiley01:

    #52274
    Merlin
    Maître des clés

    Salut,

    tu as bien fait de poster le PDF car il y a deux problèmes :

    – l’ordre de calcul des champs n’est pas bon et doit certainement occasionner des erreurs ou des incohérences, voir :
    http://help.adobe.com/fr_FR/acrobat/pro/using/WS58a04a822e3e50102bd615109794195ff-7de2.w.html

    – les messages d’alerte concernant la valeur des champs semblent dûs à une division par zéro, par exemple le script de calcul du champ “B1.23” est :

    event.value = this.getField(‘b1.22’).value/100.00;

    Alors qu’il devrait être précédé d’une protection/condition contre la division par zéro :

    /* si la valeur de l’évènement/saisie est différente de zéro */
    if (event.value != “0”)
    /* alors on exécute la division */
    {event.value = this.getField(‘b1.22’).value/100;}

    Il est inutile de préciser des décimales égales à zéro.

    Une fois ces 2 corrections effectuées ça devrait aller mieux.

    :Smiley01:

    #52275
    cmommer
    Membre

    Salut,

    Merci pour ta réponse ! J’essaye ce matin, et effectivement l’ordre des calculs y est bien pour quelque chose  :geek:
    Ca aide déjà a voir des résultats corrects à la saisie utilisateur.
    Après, il reste ce soucis d’auto remplissage par Aspose qui fais que les calculs automatiques foirent, mais au moins, il ne me reste que ça ! Ceci dis, ceux que je peux convertir en entier ne ratent pas, seulement les décimaux.
    De plus, j’ai un petit soucis avec la liste déroulante, j’ignore comme l’alimenter depuis la base. En renvoyant 1.6, il y a toujours cette erreur de décimal qui mets pas la virgule au bon endroit, et 1,6%, ça ne marche tout simplement pas.
    Quel format dois-je renvoyer depuis la base de données pour que les calculs se fassent correctement ?
    De plus, j’avais penser à faire un bouton invisible qui permet de rafraichir le PDF et donc de faire les calculs automatiquement, sans saisie utilisateur, et que cette action se lance dès l’ouverture du PDF. Une idée ?
    Merci de ta réponse !

    #52276
    Merlin
    Maître des clés

    De plus, j’avais penser à faire un bouton invisible qui permet de rafraichir le PDF et donc de faire les calculs automatiquement, sans saisie utilisateur, et que cette action se lance dès l’ouverture du PDF. Une idée ?
    Merci de ta réponse !

    – Il suffit de placer un champ supplémentaire qui exécute un calcul bidon (genre : total général + 1) et qui se situe en dernier dans l’ordre de calcul.
    Un petite ligne de script à l’ouverture servira à déclencher le calcul.
    :idee:

    – Peux tu poster le formulaire corrigé car dans celui que j’ai, je ne constate pas le problème des décimales…
    :Smiley01:

    #52277
    cmommer
    Membre

    Finalement, on s’est mis d’accord avec mon chef de projet, on arrondi tout en entier.
    Donc, plus aucun problème de calcul décimal.
    Seul soucis, reste les listes déroulantes maintenant : depuis la base, c’set 1.6 qui est renvoyé, donc il fait écris 1,6 dans le champ et le calcul ne se fait pas si on ne sélectionne pas 1.6%
    J’ai essayé de renvoyer directement en textuel 1.6% mais ça ne permet pas de faire le calcul… Je ne vois pas comment sélectionner la bonne valeur en fonction du retour de base !

    En tout cas, merci de ton aide, ça m’a bien aidé :)

    #52278
    Merlin
    Maître des clés

    Je suppose qu’une requête GREP placée dans un JavaScript permettrait de remplacer à la volée les points par des virgules, mais je ne peux pas t’aider plus avant…
      :joker:

    #52279
    cmommer
    Membre

    Merci en tout cas de ton temps et de tes réponses !

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