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 Wed 24 April 2019 19:22

tiyan34
Participant assidu
Lieu: Montpellier
Date d'inscription: 3 Mar 2006
Messages: 157

QGIS 3.4.4: Expressions automatiques

Bonjour tout le monde,

je débute sur QGis depuis quelques jours apres un passage sur Mapinfo pendant X années, et j'ai découvert que l'on pouvait appliquer des expressions automatiques sur les champs des couches pour avoir des calculs automatiques lors de mises à jours de champs.
Mais je bloque car je ne suis pas familier avec le code...

Ce que j'essaye de faire :
je dois mettre à jour très régulièrement des champs d'une couche, pour celà j'utilise des jointures via un fichier excel
Contrairement à Mapinfo (si je ne me trompe pas) , Qgis ne met pas à jour automatiquement les champs existants d'une couche mais crée un nouveau champ temporaire (qu'on peut ensuite enregistrer dans le projet).
Apres avoir réalisé ma jointure, pour mon Champ nommé "NCS_max" que je veux mettre à jour, il est simple en utilisant la calculatrice d'ecrire "NCS_max = champ temporaire", en gros.

J'ai tout d'abord rencontré le problème des valeurs NULL au lieu de 0, ce qui m’embêtait car j'utilise une analyse thématique sur ce champ A, et que les valeurs NULL ne sont pas prises en compte par l'analyse thématique.
J'ai donc utilisé l'expression If("NCS_max" is null, 0, "NCS_max")
Ceci m'a dc permis de transformer les Null en 0

Mais je ne sais pas pourquoi, cette expression, m'efface toutes les autres données non nulles

J'essaye donc de trouver une expression automatique équivalente en code à : "if champ temporaire is null alors champ temporaire = 0 ; si champ temporaire non null alors champ temporaire garde sa valeur non null; et apres avoir fait ceci, champ NCS_max = champ temporaire"

Voilà, j'ai tenté d'expliquer ma situation, c'est surement un peu brouillon mais j’espère que quelqu'un qui a l'habitude de ce genre d'expression automatiques (et dc que l'on n'a pas à refaire à chaque fois, voir en Fichier joint l'expression automatique que j'avais écrite au départ dans les options de la couche, dans Formulaire d'attribut, et donc pour mon champ NCS_max) et pourra m'aider à trouver la bonne formule


Merci Beaucoup et bonne soirée

Yannick


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#2 Thu 25 April 2019 13:26

sylvain poupard
Participant assidu
Date d'inscription: 19 Mar 2009
Messages: 362

Re: QGIS 3.4.4: Expressions automatiques

Bonjour,

Si l'intérêt est de rendre l'analyse thématique possible sur les valeurs null je suis étonné que ça ne fonctionne pas.
Pouvez-vous faire un imprim' écran de votre symbologie?
Sinon êtes vous sûr que la case est bien vide? (ex:espace résiduel)
Sinon ajouter une occurrence dans l'AT sans remplir de valeur.
Sinon...

Pour le calcul automatique il faut peut-être regarder du côté des plugin (autofields?) ou passer par postgre.

Bon courage

Hors ligne

 

Pied de page des forums

Powered by FluxBB