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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 26 October 2023 14:31

antho0023
Participant occasionnel
Lieu: Corse
Date d'inscription: 28 Apr 2023
Messages: 38

QGIS: Valeurs dynamique hors champs virtuels

Bonjour,
Je suis confronté à un problème dans QGIS. Je dispose de différentes couches comportant plusieurs colonnes. Parmi elle on retrouve un colonne TYPE, Nom 1 et Nom 2 pour simplifier.
Je ne peux pas utiliser de champs virtuels car dans certains cas je dois rentrer les valeurs manuellement. Dans les autres je voudrais que lorsque la valeur de TYPE est égale A, soit automatiquement inséré dans dans le champs Nom 1 un nom et dans le Nom 2 un autre valeur tout en relation avec la valeur de TYpe = A

Auriez vous une solution ?

Hors ligne

 

#2 Thu 26 October 2023 17:36

arginet
Participant occasionnel
Lieu: Lyon
Date d'inscription: 23 Feb 2017
Messages: 46

Re: QGIS: Valeurs dynamique hors champs virtuels

Avez-vous essayé d'utiliser le paramètre "Valeur par défaut", accessible dans l'onglet "Formulaire d'attributs" des propriétés de la couches ? Cela vous permettrait d'écrire automatiquement une valeur définie à partir de "TYPE" dans les champs "Nom 1" et "Nom 2" lors de la création d'une entité, tout en gardant la possibilité de modifier ces valeurs par la suite.

Hors ligne

 

#3 Fri 27 October 2023 09:03

antho0023
Participant occasionnel
Lieu: Corse
Date d'inscription: 28 Apr 2023
Messages: 38

Re: QGIS: Valeurs dynamique hors champs virtuels

Bonjour, le problème est que en utilisant la fonction Valeur par défaut, j'ai utilisé la fonction CASE - WHEN. Hors je pense qu'ilne s'agit pas de la bonne méthode car lorsque j'ajoutais un nouveau point et que je saisissais la valeur pout Type "A", rien ne se passait dans le formulaire. Même après validation et enregistrement.

Hors ligne

 

#4 Fri 27 October 2023 09:55

antho0023
Participant occasionnel
Lieu: Corse
Date d'inscription: 28 Apr 2023
Messages: 38

Re: QGIS: Valeurs dynamique hors champs virtuels

Finalement après patience la fonction décrite marche. Cependant j'ai maintenant un autre problème qui est plutot de la syntaxe; je voudrais que lorsque mon champ comune est égale soit à A, B ou C que le champ canton affiche par exemple la valeur X. Je n'arrive pas à lister correctement les valeurs des communes A,B et C dans la formule, Comment faut-ilprocéder ?

Hors ligne

 

#5 Fri 27 October 2023 10:31

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3946

Re: QGIS: Valeurs dynamique hors champs virtuels

Bonjour,
Partagez votre tentative, ça permettra de corriger et peut-être expliquer pourquoi votre expression ne marche pas.

Hors ligne

 

#6 Fri 27 October 2023 10:45

antho0023
Participant occasionnel
Lieu: Corse
Date d'inscription: 28 Apr 2023
Messages: 38

Re: QGIS: Valeurs dynamique hors champs virtuels

Alors voici précisément le problème; je récupère directement la formule telle qu'elle avec les champs, en cela rien de confidentiel :

Code:

CASE
WHEN  "Commune" =  'Monticello''Santa Reparata''Ile Rousse' THEN  'Pieve di Santa Riparata'

WHEN  "Commune" =  'Corbara''Pigna' THEN  'Pieve d''Aregnu'

WHEN  "Commune" =  'Feliceto''Muro''Nessa' THEN  'Pieve di Sant Andria' 

WHEN  "Commune" =  'Speloncato' THEN  'Pieve di Tuani è di Sant''Andria' 

WHEN  "Commune" = 'Occhiatana''Belgodere''Costa''Ville di Paraso'    THEN   'Pieve di Tuani' 

WHEN  "Commune" =  'Lama''Palasca''Urtaca''Novella'     THEN    'Pieve d''Ostriconi' 

WHEN  "Commune" =  'Olmi Cappella''Pioggiola''Vallica''Mausoleo' THEN  'Pieve di Giussani' 

WHEN  "Commune" =  'Pietralba' THEN  'Pieve di Caccia' 
END

Sur la syntaxe le problème est corrigé. Cela porte maintenant sur le résultat obtenu. En effet, insérant cette expression dans la valeur par défaut, lorsque j'ajoute un point et que je sélectionne ma commune, il n'y a aucun changement dans le champ "Pieve". Je présice que le champs de mise à jour est bien coché dans la configuration du champ.

Hors ligne

 

#7 Fri 27 October 2023 11:29

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3946

Re: QGIS: Valeurs dynamique hors champs virtuels

Code:

CASE
WHEN  "Commune" =  'Monticello''Santa Reparata''Ile Rousse' THEN  'Pieve di Santa Riparata'
...

J'imagine que 'Monticello''Santa Reparata''Ile Rousse' renvoie à trois communes différentes, auquel cas, la bonne syntaxe n'est pas avec = (car il va comparer avec tout le texte qui suit), mais avec l'opérateur IN, soit

Code:

CASE
WHEN  "Commune" in ('Monticello', 'Santa Reparata', 'Ile Rousse') THEN  'Pieve di Santa Riparata'
...

Hors ligne

 

#8 Mon 30 October 2023 08:46

antho0023
Participant occasionnel
Lieu: Corse
Date d'inscription: 28 Apr 2023
Messages: 38

Re: QGIS: Valeurs dynamique hors champs virtuels

Bonjour petit up avec les modifications suggérées voici ci-dessous la formule complète :

Code:

CASE
WHEN  "Commune" in ('Monticello''Santa Reparata''Ile Rousse') THEN  'Pieve di Santa Riparata'

WHEN  "Commune" in ('Corbara''Pigna') THEN  'Pieve d''Aregnu'

WHEN  "Commune" in  ('Feliceto''Muro''Nessa') THEN 'Pieve di Sant Andria' 

WHEN  "Commune" in ('Speloncato') THEN  'Pieve di Tuani è di Sant''Andria' 

WHEN  "Commune" in ('Occhiatana''Belgodere''Costa''Ville di Paraso') THEN   'Pieve di Tuani' 

WHEN  "Commune" in  ('Lama''Palasca''Urtaca''Novella')     THEN    'Pieve d''Ostriconi' 

WHEN  "Commune" in  ('Olmi Cappella''Pioggiola''Vallica''Mausoleo') THEN  'Pieve di Giussani' 

WHEN  "Commune" in ('Pietralba') THEN  'Pieve di Caccia' 
END

Malgré l'utilisation de IN, lorsque je sélectionne la commune, il n'y a rien qui se produit dans le champs "Pieve".Je reconnais que je ne comprends pas

Hors ligne

 

#9 Mon 30 October 2023 08:51

GlaDal
Participant assidu
Date d'inscription: 30 Aug 2013
Messages: 1103

Re: QGIS: Valeurs dynamique hors champs virtuels

Bonjour,

Il faut mettre des virgules entre chaque valeur

Code:

CASE
WHEN  "Commune" in ('Monticello','Santa Reparata','Ile Rousse') THEN ...

Hors ligne

 

#10 Mon 30 October 2023 09:29

antho0023
Participant occasionnel
Lieu: Corse
Date d'inscription: 28 Apr 2023
Messages: 38

Re: QGIS: Valeurs dynamique hors champs virtuels

Merci effectivement cette opération marche très bien. petite question, j'utilise un formulaire personnalisé qui vaut ce qui vaut étant débutant en QT designer. Je voudrais savoir si ces valeurs sont enregistrées par défaut dans la couche, au quel cas à chaque nouveau chargement dans qgis il n'y a pas besoin de répéter l'écriture de ces opérations ou si il faut procéder à une formalité supplémentaire ?

Hors ligne

 

#11 Mon 30 October 2023 10:27

antho0023
Participant occasionnel
Lieu: Corse
Date d'inscription: 28 Apr 2023
Messages: 38

Re: QGIS: Valeurs dynamique hors champs virtuels

Petit up je rajoute une petite demande concernant une formule ci-dessous :

Code:

upper(left("Commune", 3))  ||  to_string(@row_number)

Lorsque j'insère la fonction dans la calculatrice de champs, pas de soucis. En revanche lorsque je l'ajoute en valeur par défaut, cela me retourne la valeur NULL. Quel est le problème à votre avis ?

Hors ligne

 

Pied de page des forums

Powered by FluxBB