Pages: 1
- Sujet précédent - QGIS: Numerotation ID automatique a la creation de nouvelles entites - Sujet suivant
#1 Thu 30 August 2018 17:09
- Louise44
- Juste Inscrit !
- Date d'inscription: 25 Jun 2018
- Messages: 6
QGIS: Numerotation ID automatique a la creation de nouvelles entites
Bonjour,
Est-ce possible sur Qgis (2.18.20), d'automatiser l'ID, à la création d'une nouvelle entité dans un projet? Ceci éviterait des erreurs de saisi au moment de la création d'entité, ainsi que la pénible manipulation d'ouvrir la table attributaire pour voir à combien on en est des numéros pour mettre le numéro d'après.
J'ai tenté $id dans la calculatrice des champs, mais ça n'automatise que la numérotation des entités déjà existantes, non celles à créer.
Merci d'avance, Louise Roy
Hors ligne
#2 Thu 30 August 2018 17:23
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3945
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
Bonjour,
Voir un exemple dans les options "valeur par défaut" à https://docs.qgis.org/2.18/fr/docs/user … -settings. Il y a aussi l'extension Autofields.
Et évidemment, des sujets sur le forum genre par là ou par là.
Hors ligne
#3 Fri 31 August 2018 14:26
- Louise44
- Juste Inscrit !
- Date d'inscription: 25 Jun 2018
- Messages: 6
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
Bonjour,
Merci pour le premier lien. (les 2 autres ne fonctionnent pas pour moi.)
J'ai pu faire ce que je voulais grâce à toi.
Dans les propriétés (double clic sur la couche), onglet Champs, il faut cliquer sur ''Edition de texte'' du champs ''ID'', choisir ''Edition de texte'', cocher ''Editable'' et taper pour ''Default value'' : maximum("ID")+1. J'ai coché non nul également.
Encore merci,
Louise Roy
Dernière modification par Louise44 (Fri 31 August 2018 15:13)
Hors ligne
#4 Mon 05 October 2020 18:11
- AHAquilex
- Participant occasionnel
- Date d'inscription: 10 Jul 2018
- Messages: 17
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
Bonjour !
Je up le sujet concernant la version 3.10 (ça pourra aider vu que je n'ai trouvé LA solution que perdu dans cette page : https://gis.stackexchange.com/questions … mn-in-qgis)
Pour incrémenter le champ id automatiquement à la création d'un nouvel objet et sans que la mise à jour d'une ligne ne change l'id : il faut renseigner cette expression comme valeur par défaut (dans l'onglet "Formulaire d'attributs") :
IF ("id" is NULL,maximum("id") + 1, "id")
Ainsi, si vous mettez à jour votre ligne, l'id n'étant pas null, il ne changera pas ! [edit :] En effet, lorsque l'on renseigne une valeur par défaut utilisant une expression avec un champ, la case "Appliquer la valeur par défaut lors de la mise à jour" doit être cochée, ce qui est embêtant...
Dernière modification par AHAquilex (Thu 08 October 2020 16:00)
Hors ligne
#5 Mon 05 October 2020 19:06
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3945
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
Bonjour,
AHAquilex, décocher l'option Appliquer la valeur par défaut à la mise à jour ne fait pas déjà cela, càd. empêcher que le champ soit recalculé en cas d'édition de l'entité?
Hors ligne
#6 Tue 06 October 2020 08:54
- GlaDal
- Participant assidu
- Date d'inscription: 30 Aug 2013
- Messages: 1095
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
Bonjour,
Si ma mémoire est bonne, l'option "Appliquer la valeur par défaut à la mise à jour" est obligatoirement cochée lorsqu'on saisit une expression qui fait appel à un champ de la table.
Hors ligne
#7 Thu 08 October 2020 15:57
- AHAquilex
- Participant occasionnel
- Date d'inscription: 10 Jul 2018
- Messages: 17
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
Bonjour,
Oui effectivement je ne l'ai pas mentionné mais GlaDal a tout à fait raison, c'est pour ça que je galérais d'ailleurs (sinon ça aurait été facile ^^)
Hors ligne
#8 Fri 09 October 2020 09:51
- sylvain poupard
- Participant assidu
- Date d'inscription: 19 Mar 2009
- Messages: 362
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
Bonjour,
En complément le format geopackage *.gpkg le fait nativement ("FID" integer)
Pour plus d'info : https://www.sigterritoires.fr/index.php … et-qgis-3/
Bon courage
Hors ligne
#9 Fri 09 October 2020 10:30
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3945
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
Bonjour,
Si ma mémoire est bonne, l'option "Appliquer la valeur par défaut à la mise à jour" est obligatoirement cochée lorsqu'on saisit une expression qui fait appel à un champ de la table.
Ça m'a tout l'air d'un bug alors (ou je ne comprends pas le mécanisme).
Hors ligne
#10 Fri 27 November 2020 14:46
- insay
- Participant occasionnel
- Date d'inscription: 23 Mar 2018
- Messages: 25
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
Bonjour,
Je travaille sur la version 3.10 (LTR), je rencontre un problème avec $id, lorsque je le met en valeur par défaut il se met systématiquement a '0'.
J'ai pour objectif de faire la même chose que Louise, c'est a dire une incrémentation automatique de ma couche ID en commençant par 1 ($id +1), vous sauriez comment se fait il que la valeur est toujours égale à 0 ?
Merci d'avance
Hors ligne
#11 Mon 30 November 2020 08:43
- aheurion
- Participant actif
- Lieu: NANTES
- Date d'inscription: 8 Oct 2020
- Messages: 143
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
Bonjour Insay,
Je pense que dans ton cas il faudrait un échantillon de tes données pour voir ce qui ne va pas.
$id commence par 0, ça c'est normal et c'est pour ça qu'on utilise $id+1, mais si tu dis que toutes tes valeurs prennent 0...
Et si tu souhaites faire une incrémentation qui reste valable à la création d'entité, il ne faut pas utiliser $id (ça ça marche si tu mets une fois à jour tes ids avec la calculatrice de champs) mais une formule à indiquer dans la valeur par défaut du formulaire (cf. messages plus haut).
Hors ligne
#12 Tue 01 December 2020 12:51
- insay
- Participant occasionnel
- Date d'inscription: 23 Mar 2018
- Messages: 25
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
Hello tout le monde,
J'ai compris mon erreur, a chaque créations d'entité je ne pensais pas a sauvegardé avant d'en recréer une autre .... effectivement quand je sauvegarde et que je créer une nouvelle entité avec une formule du style : 'BPE' || ' ' || '-' || ' ' || maximum($id+1)
Du coup plus besoin de passer par un attribut "ID" avec la formule juste au dessus j'obtiens bien ce que je souhaite.
Merci a tous
Hors ligne
#13 Tue 01 December 2020 13:19
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3945
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
Bonjour,
Un peu HS mais... Toute la première partie de l'expression n'étant que du texte vous pouvez juste écrire 'BPE - ' || maximum($id+1)
Hors ligne
#14 Wed 02 December 2020 08:00
- insay
- Participant occasionnel
- Date d'inscription: 23 Mar 2018
- Messages: 25
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
ah oui effectivement :x
Merci pour la remarque Santanna
Hors ligne
#15 Thu 07 January 2021 15:53
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
Bonjour,
parce que c'est encore d'actualité, TOUS mes voeux pour cette année qui démarre très très vite
des bonnes données , des traitements légers et efficaces , des outils magiques , des sources propres et exactes seraient un rêve éveillé mais ferait perdre tout son sens à la communauté Georezo :-)
Pour rebondir que la question de Louise puis Insay, comment identifier la valeur maximale d'un id quand la donnée est filtrée ?
J'ai un fichier de plus de 1000 lignes mais seules 2000 doivent être embarquées sous Qfield pour faire de la mise à jour terrain.
pour se faire, j'applique un filtre d'entité sur ma couche, je génère mon formulaire mais
appliquer la formule (IF ("id" is NULL,maximum("id") + 1, "id")) sur mon champ "id" ne s'applique qu'aux seuls points conservés par mon échantillon :-( (Max de la base = 100064 contre max de l'extrait = 8467 ... l'incrémantation repart donc à 8468)
Une fois la saisie faite, je souhaite à l'importation, récupérer les nouveaux points saisis avec un ID unique qui n'écrasera pas un point existant hors cadre d'enquête.
J'espère être claire
Merci par avance
Corinne
Hors ligne
#16 Tue 12 January 2021 10:33
- aheurion
- Participant actif
- Lieu: NANTES
- Date d'inscription: 8 Oct 2020
- Messages: 143
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
Bonjour cocro, et bonne année également ! ^^
Pourrais-tu expliquer un peu plus comment tu fais ton filtrage de tes 2000 lignes sur les 100.000 ?
Car normalement ton formulaire s'applique à toute la couche, donc doit prendre en compte les entités non sélectionnées également.
Si le filtrage implique de dupliquer la couche en ne gardant que les 2000 entités (qui seront traités puis réintégrées par fusion à la couche initiale) dans ce cas tu peux bidouiller en indiquant dans la formule l'id maximum que tu auras relevé à la main (ici 100064) :
IF ("id" is NULL, maximum(100064,maximum("id") + 1), "id")
Géolocalement votre
Hors ligne
#17 Tue 12 January 2021 11:15
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
Bonjour,
la couche que j'utilise couvre 67 communes. Seule une est mise à jour en ce mois de janvier.
Le filtre se fait dans l'onglet "propriété de la couche" / "source" / "filtre d'entité du fournisseur de donnée / : choix de ma commune à traiter.
je bascule visuellement ainsi sous Qfield que les points à relever, n'invitant pas l'opérateur à aller voir ailleurs.
au retour terrain, plus qu'à supprimer le filtre pour revoir toutes mes données. ;-)
A la création de nouveaux points sur le terrain, le problème de l'ID unique se pose car l’incrément se fait sur la valeur maximale trouvé dans le filtre, ne tient pas compte des autres informations (logique masquée).
Je vais tester la formule, cela pourrait en effet résoudre mon souci
Je ne souhaite pas faire de copie/duplication de ma donnée source car la mise à jour globale se ferra au fil de l'eau cette année, commune par commune.
Cordialement
Hors ligne
#18 Wed 25 August 2021 21:29
- Renaud52
- Juste Inscrit !
- Date d'inscription: 19 Aug 2021
- Messages: 4
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
Bonjour,
Merci pour le premier lien. (les 2 autres ne fonctionnent pas pour moi.)
J'ai pu faire ce que je voulais grâce à toi.
Dans les propriétés (double clic sur la couche), onglet Champs, il faut cliquer sur ''Edition de texte'' du champs ''ID'', choisir ''Edition de texte'', cocher ''Editable'' et taper pour ''Default value'' : maximum("ID")+1. J'ai coché non nul également.
Encore merci,
Louise Roy
Bonjour,
Cette formule fonctionne effectivement bien pour moi mais seulement si une entité existe déjà. Pour une couche vide, il faut pouvoir initialiser l'incrémentation. J'utilise donc cette formule pour ''Default value'' : if(count("ID")=0,1,maximum("ID")+1) mais sans coché non nul.
Cordialement,
Hors ligne
#19 Wed 31 May 2023 15:57
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
bonjour je reviens sur le fait de pouvoir créer des objets (polygones) dans un fichier shape avec une incrémentation de l'ID automatique. J'utilise QGIS 3.28 Firenze
J'ai créé une couche de polygone avec le champ ID
Dans les propriétés de la couche, en cliquant sur le champ ID, je décoche éditable, et dans valeur par défaut j'ai saisi IF ("id" is NULL,maximum("id") + 1, "id"). je coche "appliquer la valeur par défaut sur la mise à jour", sinon il ne prend pas la formule.
Je créé mes polygones, il ne se passe rien.
car en fait comment fait-il pour démarrer à "1" pour le premier polygone?
je ne comprends pas... j'ai du rater un truc dans la discussion. quelqu'un pour m'aider?
L'extension Autofields ne semble plus exister
bien cordialement
Hors ligne
#20 Wed 31 May 2023 16:49
- Lsam
- Participant assidu
- Date d'inscription: 27 Nov 2013
- Messages: 157
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
Bonjour,
Je n'ai pas tout suivi mais dans le formulaire d'attributs, pour votre champ ID, indiquer "Valeurs uniques" puis dans Contraintes, cocher "Unique" et indiquer dans expression : @id
Ça marche très bien de mon côté ; pas vous ?
Hors ligne
#21 Wed 31 May 2023 16:58
- GlaDal
- Participant assidu
- Date d'inscription: 30 Aug 2013
- Messages: 1095
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
Bonjour,
Essayez ceci :
(coalesce(maximum("id"),0))+1
Hors ligne
#22 Thu 01 June 2023 08:35
- Vincent Vauchey
- Participant assidu
- Lieu: saint jean de braye
- Date d'inscription: 24 Jan 2006
- Messages: 288
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
Bonjour
Il faut aussi un champ 'entier' pour que cela fonction, surtout pas de texte.
Vincent
Hors ligne
#23 Thu 01 June 2023 14:34
- GlaDal
- Participant assidu
- Date d'inscription: 30 Aug 2013
- Messages: 1095
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
Ca peut fonctionner avec cette formule sur un champ texte :
Code:
concat( 'S',(coalesce(maximum(to_int(replace("id",'S',''))),0))+1)
Ex. : 'S1','S2', ...
Hors ligne
#24 Thu 01 June 2023 16:13
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
Bonjour,
Je n'ai pas tout suivi mais dans le formulaire d'attributs, pour votre champ ID, indiquer "Valeurs uniques" puis dans Contraintes, cocher "Unique" et indiquer dans expression : @id
Ça marche très bien de mon côté ; pas vous ?
bonjour
désolée mais ça ne donne rien...
je vous mets une copie d'écran
Dernière modification par NellyM (Thu 01 June 2023 16:27)
Hors ligne
#25 Thu 01 June 2023 16:13
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
Bonjour,
Essayez ceci :
(coalesce(maximum("id"),0))+1
bonjour
désolée mais pouvez-vous me dire précisément où je dois saisir cette formule?
Dernière modification par NellyM (Thu 01 June 2023 16:27)
Hors ligne
#26 Thu 01 June 2023 16:59
- Vincent Vauchey
- Participant assidu
- Lieu: saint jean de braye
- Date d'inscription: 24 Jan 2006
- Messages: 288
Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites
Re
Dans ''valeur par défaut'' laisser en texte pas valeur unique et il vous faut mettre la première entrée (1)
et rien dans contrainte.
Dernière modification par Vincent Vauchey (Thu 01 June 2023 17:01)
Hors ligne
Pages: 1
- Sujet précédent - QGIS: Numerotation ID automatique a la creation de nouvelles entites - Sujet suivant