#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: 3943
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: 3943
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: 1087
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