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 08 January 2020 13:48

upriste
Participant occasionnel
Date d'inscription: 14 Feb 2019
Messages: 41

QGIS 3.4: formulaire et expression

Bonjour,

J'ai 2 problèmes (simples apparemment que je n'arrive pas à résoudre).

1er problème : incrementation de l'ID avec la valeur par défaut

J'aimerais qu'à chaque création d'entité mon champs "ID" s'incrémente.
Dans formulaire, j'ai sélectionné "Edition de texte" puis dans Défauts j'ai mis l'expression suivante : maximum("ID")+1.
Le problème c'est qu'il me met 10000 à chaque fois que je créé une entité. Donc il n'y a pas d'incrémentation et encore moins d'identifiant unique.

2ème problème : saisie automatique d'un champs par expression

J'ai 3 champs "INSEECOM_G" , "INSEECOM_D" , "INSEECOM" (qui est sensé être une concaténation des 2 premiers). La concaténation ne pose pas de PB dans la calcultrice de la table. Mais j'aimerais que le champs "INSEECOM" soit automatiquement calculé à chaque création d'entité. 
Dans le formulaire, je suis également allé dans valeur par défaut et j'ai entré cette expression :
CASE
WHEN
"INSEECOM_G"  <>  "INSEECOM_D"
THEN
"INSEECOM_G"  || '/' ||  "INSEECOM_D"
ELSE
"INSEECOM_G"
END

Malheureusement, je n'ai que la valeur NULL qui s'affiche. J'ai pourtant bien mis une contrainte non nul mais rien n'y fait.

Avez-vous des solutions?

Hors ligne

 

#2 Wed 08 January 2020 15:28

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

Re: QGIS 3.4: formulaire et expression

Bonjour,
1er problème: je ne peux pas confirmer. Ça fonctionne ici. J'ai l'incrémentation
2ème problème: comme indiqué dans la note de la doc, il est impossible d'utiliser les valeurs de l'entité en cours de création car elles sont encore inconnues. Workaround: créer un champ virtuel qui lui va calculer la donnée et à la fin du processus, balancer son contenu dans le champ "inseecom"
Pour ce qui est de la valeur NULL, la contrainte est-elle renforcée?

Hors ligne

 

#3 Wed 08 January 2020 15:42

romainbh
Participant assidu
Date d'inscription: 20 Aug 2013
Messages: 355

Re: QGIS 3.4: formulaire et expression

Pour le premier souci, c'est simplement que le champ est en texte. Il faut en créer un en nombre entier et ça ira.

Hors ligne

 

#4 Wed 08 January 2020 18:01

upriste
Participant occasionnel
Date d'inscription: 14 Feb 2019
Messages: 41

Re: QGIS 3.4: formulaire et expression

Merci pour vos réponses.
Pour le 1, le souci venait effectivement du type du champs. Je l'ai donc passé en entier et l'incrémentation se fait.
Pour le 2, je fais donc pointer la valeur par défaut de mon formulaire sur le champs virtuel?

Hors ligne

 

#5 Thu 09 January 2020 09:49

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

Re: QGIS 3.4: formulaire et expression

Bonjour,

Pour le 2, je fais donc pointer la valeur par défaut de mon formulaire sur le champs virtuel?


Non. A ma connaissance, la valeur par défaut ne peut pas être calculée en utilisant un autre champ de la même entité, lors de la création. donc oubliez cette option dans ce cas précis. Le champ virtuel par contre le peut. D'où la suggestion de créer un champ virtuel qui va récupérer automatiquement les infos puis, une fois toutes vos modifications faites, rebalancer son contenu dans le champ inseecom.

Hors ligne

 

#6 Thu 09 January 2020 12:02

upriste
Participant occasionnel
Date d'inscription: 14 Feb 2019
Messages: 41

Re: QGIS 3.4: formulaire et expression

Oui je confirme, ça ne fonctionne qu'en faisons pointant sur le champs virtuel. Merci.

Hors ligne

 

#7 Tue 10 November 2020 08:25

aheurion
Participant actif
Lieu: NANTES
Date d'inscription: 8 Oct 2020
Messages: 141

Re: QGIS 3.4: formulaire et expression

Bonjour,

Je suis tombé sur ce sujet par hasard, mais je précise pour information que sur la 3.10 on peut mettre à jour l'information de l'entité en cours de création via d'autres champs de cette même entité. ça marche très bien chez moi pour appliquer largeur=diamètre quand on commence à renseigner le diamètre :
if("DIAMETRE" is not null, "DIAMETRE","LARGEUR")
en cochant la case "Appliquer la valeur par défaut sur la mise à jour"

Bonne journée à tous

Hors ligne

 

Pied de page des forums

Powered by FluxBB