Changer le nombre de décimales dans un modèle

Répondre
SRI
Messages : 256
Enregistré le : mer. mars 15, 2017 8:50 pm

mar. févr. 19, 2019 1:02 pm

Bonjour,

Avec le modèle de commande fournisseurs par défaut (fichiers "Commande.*"), j'obtiens un affichage "42.880000 €/pièce" dans la colonne "P./Unité". Malgré mes recherches sur le forum et dans le manuel, je ne trouve pas comment réduire le nombre de décimales pour obtenir juste "42.88 €/pièce".

Quelqu'un sait comment faire ?
Utilisateur Cloud avec un contrat de maintenance.
Avatar du membre
guillaume
Messages : 2429
Enregistré le : ven. févr. 11, 2011 7:15 pm

mar. févr. 19, 2019 1:50 pm

Bonjour,

Vous cherchez trop compliqué, ça se fait tout simplement dans le format de la cellule dont directement avec Libre/OpenOffice.

Cordialement,
Directeur technique d'OpenConcerto qui dans son temps libre s'occupe du forum.
Pour une assistance pro, nous sommes joignables à ILM Informatique contre quelques jetons.
Pensez aussi à lire le manuel !
SRI
Messages : 256
Enregistré le : mer. mars 15, 2017 8:50 pm

mar. févr. 19, 2019 3:46 pm

Sauf erreur de ma part, la cellule est déjà par défaut au format "Nombre" sous LibreOffice avec 2 décimales, séparateur de milliers et 1 zéro non significatif.

Mais de ce que j'ai compris avec le commande.xml, il sera mis dans cette case non pas une valeur numérique, mais une valeur textuelle constituée d'un nombre (formaté en "devise") accolé à "€/" et à une valeur textuelle ("pièce" dans mon cas):

Code : Tout sélectionner

		<element location="G" type="fill">
			<field name="PRIX_METRIQUE_HA_1" type="devise" />
			<field name="ID_MODE_VENTE_ARTICLE">
				<field name="CODE" prefix="€/" />
			</field>
		</element>
		
Donc si j'ai bien compris et pour résumer, la cellule a déjà le bon formatage sous libreoffice pour un nombre, mais comme on y met un texte, cela ne sert à rien. J'ai l'impression que c'est le type "Devise" dans le xml, qui rajoute tous ces zéros.

Ou alors, j'ai rien compris.
Utilisateur Cloud avec un contrat de maintenance.
SRI
Messages : 256
Enregistré le : mer. mars 15, 2017 8:50 pm

jeu. févr. 21, 2019 3:12 pm

J'ai poussé mes recherches un peu plus loin et je pense confirmer mes hypothèses. Si le code de la cellule dans le xml est juste :

Code : Tout sélectionner

		<element location="G" type="fill">
			<field name="PRIX_METRIQUE_HA_1"  type="devise"/>
		</element>
Alors le formatage de la cellule sous LibreOffice est bien pris en compte (j'ai testé), car il n'y a qu'une valeur numérique dans celle-ci.

Mais il suffit de rajouter un élément textuel dans cette case (par exemple le symbole euro dans l'exemple ci-dessous), pour que du coup, ce ne soit plus considéré comme un nombre mais une valeur textuelle. Le formatage du nombre n'est alors pas appliqué. Je me retrouve donc avec un affichage de prix avec plein de zéros après les centimes.

Code : Tout sélectionner

		<element location="G" type="fill">
			<field name="PRIX_METRIQUE_HA_1" type="devise" suffix=" €" />
		</element>
Bref, je pense qu'il m'est impossible de corriger ce problème d'affichage et que la solution est dans les profondeurs du code d'OC. ;)
Utilisateur Cloud avec un contrat de maintenance.
Sebiiiii
Messages : 71
Enregistré le : lun. mars 27, 2017 10:05 am

jeu. févr. 21, 2019 3:45 pm

Je pense que ton raisonnement est juste, et que la solution n'est pas dans es profondeurs du code d'OC, mais bien dans ton XML :
- enlève le suffixe
- dans ton modèle, mets les champs en monétaire
- le symbole € devrait apparaitre ?
Ancien dev php/mysql - maintenance info, reconverti dans la récupération de données.
OC monoposte sur Windows - Utilisateur OC depuis Janvier 2017
HDDR49.fr
ludovic
Messages : 265
Enregistré le : ven. avr. 15, 2011 2:32 pm

jeu. févr. 21, 2019 4:27 pm

Bonjour,

il faut ajouter l'attribut decimalScale.

ex :
<element location="G" type="fill">
<field name="PRIX_METRIQUE_HA_1" type="devise" suffix=" €" decimalScale="2" />
</element>

Cordialement,
Ludovic.
SRI
Messages : 256
Enregistré le : mer. mars 15, 2017 8:50 pm

sam. févr. 23, 2019 2:51 pm

@Ludovic : merci cela fonctionne.

@Sebiiiii: Le symbole monétaire n'était qu'un autre exemple. Mon premier post montrait le problème initial, c'est à dire l'affichage de "42.880000 €/pièce".
Bref, dès que tu vas utiliser la propriété suffix ou prefix (comme dans le xml fourni par défaut), tu risques de voir non appliqué le formatage du nombre défini dans LibreOffice, car ce ne sera plus un nombre, mais une valeur alphanumérique. Il faut alors recourir au formatage directement dans le XML.
Utilisateur Cloud avec un contrat de maintenance.
Sebiiiii
Messages : 71
Enregistré le : lun. mars 27, 2017 10:05 am

lun. févr. 25, 2019 10:39 am

yep, le fonctionnement des formatages :D
c'est bien que Ludovic ait donné la solution ;)
Ancien dev php/mysql - maintenance info, reconverti dans la récupération de données.
OC monoposte sur Windows - Utilisateur OC depuis Janvier 2017
HDDR49.fr
Répondre