Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Mon 18 July 2016 14:47

Cerise45
Participant actif
Date d'inscription: 31 Aug 2011
Messages: 132

QGIS 2.14 & Python: Fonction format_number (séparateur de milliers)

Bonjour,


J'ai un petit problème dans le script suivant.

Code:

from PyQt4.QtCore import *
from PyQt4.QtGui import *
from qgis.core import *
from qgis.gui import *
from osgeo import *
from qgis.utils import qgsfunction
import processing, time

[...]

            layerTOT = QgsMapLayerRegistry.instance().mapLayer("ID_de_ma_couche")
            layerTOT.startEditing()
            for feat in layerTOT.getFeatures():
                writefieldtot = layerTOT.fieldNameIndex("CHAMP_NBR")
                writefieldtotEtiqu = layerTOT.fieldNameIndex("CHAMP_TXT")
                resulttot = float(feat.attribute("CHAMP_NBR1")) + float(feat.attribute("CHAMP_NBR2"))
                layerTOT.changeAttributeValue(feat.id(),writefieldtot,resulttot)
                # Recopier les valeurs dans des champs texte pour faire les étiquettes avec les séparateurs par milliers
                expr = format_number(resulttot , 0)
                layerTOT.changeAttributeValue(feat.id(),writefieldtotEtiqu,expr)
            layerTOT.commitChanges()

La ligne expr = format_number(resulttot , 0) ne fonctionne pas.

L'erreur qui se produit est :  global name 'format_number' is not defined.

Savez-vous comment l'importer au début du script ? Ou s'il s'agit d'un autre type d'erreur ?

J'ai au préalable essayé cette fonction dans le calculateur de champ de QGIS et elle fonctionnait très bien puisque les résultats dans ma table attributaire étaient bien des nombres avec le séparateur par milliers.
format_number(  "CHAMP_NBR" ,0)
C'est au moment où je la passe dans le script (via un plugin) qu'elle ne fonctionne plus.

Merci de votre aide.

Dernière modification par Cerise45 (Mon 18 July 2016 14:48)

Hors ligne

 

#2 Mon 18 July 2016 16:19

Cerise45
Participant actif
Date d'inscription: 31 Aug 2011
Messages: 132

Re: QGIS 2.14 & Python: Fonction format_number (séparateur de milliers)

J'ai résolu ce problème en appliquant le format (même formule) directement aux étiquettes au lieu de l'appliquer dans le calcul du champs.

Hors ligne

 

Pied de page des forums

Powered by FluxBB